2

プロセス A とプロセス B の 2 つのプロセスがソケット経由で通信しています。

プロセス B はselect()呼び出しを使用して、ソケットの準備ができているかどうかを確認しています。I/O.

プロセス A が突然強制終了されます。B側ソケットはどうなるの?B 側のソケットは、A のソケットが使用できなくなったことを自動的に検出し、select()-1 を返しEABDFます。またはselect()通話は永久にブロックされたままになります。

4

3 に答える 3

2

select()戻り、ソケットが読み取り可能であると言います。ソケットを読み取ると、-1 (および errno の対応するエラー) または 0 (EOF) が返されます。

于 2013-08-01T10:05:46.733 に答える
2

選択するとロックが解除され、エラー ケースまたは読み取りケースが返されます。

于 2013-08-01T09:57:10.590 に答える
-1

2 つの側の間にハートビートがない場合、tcp ソケットはしばらくの間半分開いたままになります。最後に、タイムアウト設定に応じて、tcp 接続がタイムアウトします。参照: http://en.wikipedia.org/wiki/Half-open_connection

于 2013-08-01T10:03:56.977 に答える