selectock中的select()函数失败

时间:2014-11-30 19:08:36

标签: c select winsock winsock2

我正在建立一个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。 我做错了什么?

1 个答案:

答案 0 :(得分:3)

简单的拼写错误:

if (t = SOCKET_ERROR)

应该是:

if (t == SOCKET_ERROR)