问题:关于socket编程中recv函数
描述:socketrecv乱码编程
Client端代码:
初始化:char recvbuf[20];
int recvbuflen = 20;
RtlZeroMemory(recvbuf,20);
recv函数定义:iResult = recv(ConnectSocket,recvbuf, 20, 0);
但是我的Server端发送过来的数据是“我是服务器,我在发信,你能收到吗?”是大于20个字节的,所以应该多调用几次recv函数是吧?
MSDN上是这样写的:
do {
iResult = recv(ConnectSocket,recvbuf, 20, 0);
if ( iResult > 0 )
{
printf("Bytes received: %d\n", iResult);
printf("recvBuf:%s\n",recvbuf);
}
else if ( iResult == 0 )
printf("Connection closed\n");
else
printf("recv failed: %d\n", WSAGetLastError());
} while( iResult > 0 );
我发送端的字节长度为35,但是在第一次调用recv后,收到的是“我是服务器,我在发信烫烫烫ex?”
第二次收到的是“,你能收到吗?”
为什么第一次接收到的带有乱码?
求助 ,欢迎大家来解答
- 明星图片
- 相关文章
-
联系邮箱:mxgf168#qq.com(#改为@)