我正在建立一个udp客户端。我正在使用select函数来实现超时:
FD_ZERO(&stReadFDS);
FD_SET(clientSock, &stReadFDS);
int t = select(1, &stReadFDS, NULL, NULL, &sTimeOut);//first parameter of select is ignored in winsocks
if (t = SOCKET_ERROR) {
fprintf(stderr, "Call to select() failed");
exit(1);
}
if (t != 0) {
if (FD_ISSET(clientSock, &stReadFDS)) {
//recvfrom(...)
}
}
每次select func都返回一个SOCKET_ERROR。 我做错了什么?
答案 0 :(得分:3)
简单的拼写错误:
if (t = SOCKET_ERROR)
应该是:
if (t == SOCKET_ERROR)