fd_set に stdin 記述子が含まれている場合、選択に問題があります。同様の質問がいくつか見つかりましたが、答えは役に立ちませんでした。そして、はい、私はこれを読みました(ソケットと標準入力から読み取ろうとしている間、selectは常に-1を返します)トピック:)
注: Windows、Netbeans IDE、および cygwin を使用しています。
問題: fd_set に標準入力記述子と接続記述子が含まれている場合、Select は -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