s是SOCK_STREAM类型的char buf[1024];
recv(s, buf, sizeof(buf), 0);
会不会有如下情况发生:
对方调用send一次发送了1024字节的数据,recv会不会一次调用不能把这1024个字节全部取到,而要多次调用才能取完?
recv(s, buf, sizeof(buf), 0);
会不会有如下情况发生:
对方调用send一次发送了1024字节的数据,recv会不会一次调用不能把这1024个字节全部取到,而要多次调用才能取完?
int TTcpClient::Recv(char* recvMsg, int recvLen)
{
int ret = 0;
int read = 0; while (read < recvLen)
{
ret = recv( u_hSocket, recvMsg + read, recvLen - read, 0);
if(ret == SOCKET_ERROR)
{
return SOCKET_ERROR;
}
if ( ret == 0 )
{
return SOCKET_ERROR;
}
read += ret;
}
return read;
}