使用recv 函数在flags = MSG_WAITALL的时候在Windows XP下失败。 前置条件:阻塞方式 代码片段 … mysocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); … connect(mysocket, (struct sockaddr *)&server, sizeof(SOCKADDR_IN)); …
nret = recv(mysocket,buf, MAX_BUFFER_SIZE, MSG_WAITALL);
把MSG_WAITALL修改为0可以解决这个问题。
记录下来。
函数原型
int recv(
__in SOCKET s,
__out char* buf,
__in int len,
__in int flags
);