1

AndroidでNIOクライアントプログラムに取り組んでいます。基本的にはうまく機能しますが、ネットワークが利用できない場合(WIFIが無効になっているなど)、ソケットが「実際に」接続されていることを区別する方法がわかりません.SocketChannel.finishConnect () は、利用可能なネットワークがなくても常に true を返します。接続されていない SocketChannel に書き込もうとすると、Broken pipe 例外が発生します。

では、SocketChannel が実際に接続されていることを確認するにはどうすればよいのでしょうか。

4

1 に答える 1

1

接続されていない SocketChannel に書き込もうとすると、Broken pipe 例外が発生します。

正しい。

では、SocketChannel が実際に接続されていることを確認する方法を教えてください。

それが方法です。教えてくれるAPIはありません。TCPはそのようには機能しません。切断された TCP 接続を検出する唯一の方法は、それを使用することです。

于 2014-02-20T04:01:41.527 に答える