Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
C/C++ では、WinSocks と *nix の両方で、ブロッキング ソケットを非ブロッキング ソケットに変換する方法を教えてください。select() が正しく機能するようにします。プラットフォーム固有のコードにはプリプロセッサを使用できます。
Linux の場合:
fcntl(fd, F_SETFL, O_NONBLOCK);
窓:
u_long on = 1; ioctlsocket(fd, FIONBIO, &on);
select() は、ブロッキングソケットで動作するはずです。read() がすぐに戻る場合に戻ります。これは、非ブロッキング ソケットの場合に常に当てはまります。