读书人

受不鸟了。关于socket send和recv发送

发布时间: 2012-03-17 19:06:27 作者: rapoo

受不鸟了。。。关于socket send和recv发送数据?
服务器要发给客户端一个大小为 12320 Byte 的一个txt文件,但是每次client收到的是 一个比 12320 Byte 略大一点的txt文件,每次大小都不一样。打开看一下。发现里面会有好几处字符中比原来的正常的txt文件 多了4个“烫”。。。。
怎么办啊。。。

我贴一下代码。球各位大大帮帮忙。。

C/C++ code
// server发送端char buffer[1024];         //发送数据缓冲区while(fgets( buffer, 1024, f))   //读文件{    int nBytesSent = send( client, buffer, strlen(buffer), 0 );  }//  client接收端DWORD dwBytesWriten = 1 ;memset( buffer, 0 , sizeof(buffer) );while( dwBytesWriten != 0 ){    nRecv = recv( s, buffer, sizeof(buffer), 0);    WriteFile( hFile, buffer, strlen(buffer), &dwBytesWriten, 0 );    memset( buffer, 0 , sizeof(buffer) );}


[解决办法]
char buffer[1024] = {0};
初始化一下
[解决办法]
对。。。。或者memset一下
[解决办法]
int nBytesSent = send( client, buffer, strlen(buffer), 0 );
这里没有保证发送的长度就是你读出的长度

WriteFile( hFile, buffer, strlen(buffer), &dwBytesWriten, 0 );
这里没有保证写入文件的长度就是你接收到的长度

读书人网 >VC/MFC

热点推荐