我在发送端用CSocket SocketSend;来发送文件(我用的是TCP)
接收端用的是CSocket SocketRecv;来接收文件(我用的是TCP)
按照我的理解是:如果发送端旦用Send发送后就应该等待接收端的Recevie接收完.如果我在接收端
没有Receive 发送端的Send就应该阻塞直等接收端Receive 而现在发送端不管接收端有没有Receive就一直不停的发送.. 我不懂原由. 请高手们不吝讲解..
接收端用的是CSocket SocketRecv;来接收文件(我用的是TCP)
按照我的理解是:如果发送端旦用Send发送后就应该等待接收端的Recevie接收完.如果我在接收端
没有Receive 发送端的Send就应该阻塞直等接收端Receive 而现在发送端不管接收端有没有Receive就一直不停的发送.. 我不懂原由. 请高手们不吝讲解..
CFile theFile;
theFile.Open(Path,CFile::modeRead|CFile::typeBinary);
byte* pBuff=new byte[1024];
UINT Sent=0;
UINT temp=0;
while(Sent<TempFile.FileSize)
{ temp=0;
temp=theFile.Read(pBuff, 1024);
pSocket->Send(pBuff,temp);
Sent+=temp;
}theFile.Close(); delete pBuff;AfxMessageBox("文件传送完毕!",MB_OK+MB_ICONINFORMATION);
接收方:
CFile theFile;
theFile.Open(Path,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
byte* pBuff=new byte[1024];
UINT Received=0;
UINT temp=0;
while(Received<TempFile.FileSize)
{ temp=0;
temp=pSocket->Receive(pBuff, 1024);
theFile.Write(pBuff,temp);
Received+=temp;
}theFile.Close(); delete pBuff;
AfxMessageBox("文件接收完毕!",MB_OK+MB_ICONINFORMATION);
这样更不容易出错
在传送多个文件时就出错了