问题:关于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?”
第二次收到的是“,你能收到吗?”
为什么第一次接收到的带有乱码?
求助 ,欢迎大家来解答

上一篇哪位大神能详细解释下网络通信啊?
下一篇c语言模拟网页搜索
明星图片
相关文章
《关于socket编程中recv函数》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)