当前位置: 技术问答>linux和unix
socket传送文件丢失数据问题
来源: 互联网 发布时间:2017-04-23
本文导语: 我编写了传送文件的服务器/客户端程序,由服务端向客户端传送文件。服务端在Linux下用C语言编写,客户端在为windows下用C#编写。对于较大的文件通过分包的方式进行发送,每个包最大1024个字节。现在的问题是,如...
我编写了传送文件的服务器/客户端程序,由服务端向客户端传送文件。服务端在Linux下用C语言编写,客户端在为windows下用C#编写。对于较大的文件通过分包的方式进行发送,每个包最大1024个字节。现在的问题是,如果发送的包与包之间不添加ulseep()函数,则会出现数据丢失的现象。如果添加上,让每次发送一个包后休眠一段时间,则客户端能完整的接收所有数据。
服务端主要代码如下:
服务端主要代码如下:
void SendFile(int socketFd,Connection*conn)
{
//接收客户端发来的文件请求
char recvMsg[BUFFER_SIZE];
ReceiveMessage(socketFd,recvMsg);
string fileName=recvMsg;
cout