受不鸟了。。。关于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 );
这里没有保证写入文件的长度就是你接收到的长度