使用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
);