我是一个初学者,写了一个程序,目的是让A、B两台机器之间可通过socket互相传递文件。A:
sock = CreateSocket();
SendFile(sock);
ReceiveReport(sock);B:
sock = CreateSocket();
ReceiveFile(sock);
SendReport(sock);但是有问题: 就是A发送文件成功,然后卡死,将A程序关闭,这时B接收文件才成功,并B发送文件成功。但是A只建立文件,文件中没内容。我在想是不是,A传文件给B,**,然后B再传文件给A。请教其中的**,应该是个什么样的操作?
是不是涉及到同步异步、或者阻塞的问题。有劳大家指点,多谢!
sock = CreateSocket();
SendFile(sock);
ReceiveReport(sock);B:
sock = CreateSocket();
ReceiveFile(sock);
SendReport(sock);但是有问题: 就是A发送文件成功,然后卡死,将A程序关闭,这时B接收文件才成功,并B发送文件成功。但是A只建立文件,文件中没内容。我在想是不是,A传文件给B,**,然后B再传文件给A。请教其中的**,应该是个什么样的操作?
是不是涉及到同步异步、或者阻塞的问题。有劳大家指点,多谢!
while(true)
{
read=recv(client,recvbuf,1024,0);
if(read==-1) break;
bRet=WriteFile(hFile,recvbuf,read,&dwWrite,NULL);
}
结果缓冲区读完后,停在read=recv(client,recvbuf,1024,0);这里卡住了。
后来我加了一条if语句,变成这样就好了。
while(true)
{
read=recv(client,recvbuf,1024,0);
if(read==-1) break;
bRet=WriteFile(hFile,recvbuf,read,&dwWrite,NULL);
if (read<1024) break;
}