当fd_set包含stdin描述符时,我遇到了select问题。我发现了一些类似的问题,但答案没有帮助。是的,我已经阅读了这个(select always returns -1 while trying to read from socket and stdin)主题:)
注意:我使用的是Windows,Netbeans IDE和cygwin;
问题:当fd_set包含stdin描述符和连接描述符时,选择返回-1。如果没有标准输入描述符,也选择正常工作。
while(1) {
FD_ZERO(&readableSocksSet);
FD_SET(fileno(stdin), &readableSocksSet);
FD_SET(serverSocket, &readableSocksSet);
i = select(serverSocket + 1, &readableSocksSet, NULL, NULL, 0);
}
在此代码之后:i == -1