7

ソケットを非同期に接続しています (O_NONBLOCK + 接続)。POSIX 標準は、ソケットが接続された後、ソケットのファイル記述子を書き込み可能にすることによってイベントを通知する必要があることを指定しています。非同期接続中の失敗については何も言っていないようです。

Linux でテストすると、この状況で POLLOUT が発生したり、POLLERR が発生したりすることがあるようです。行動にパターンはありますか?単一の方法でエラーを報告するようにできますか? POSIX は私が見落としていることを言っていますか?

4

1 に答える 1

4

DJ Bernstein には、関連性がありそうなものがいくつかあります: http://cr.yp.to/docs/connect.html。特に、彼はエラーを解消するためのいくつかの異なる方法を提案しています。

UNIX Socket FAQ にはConnect with timeoutに関するセクションがあり、これには次を使用して失敗した接続からエラーを取得することが含まれますgetsockopt

于 2009-02-22T11:10:57.820 に答える