2

私は2つのAndroidデバイスを持っています。Aはサーバー、Bはクライアントで、ソケットに接続します。サーバー/クライアントは、お互いが切断または閉じていることをどのように認識しますか?

isconnect() を試してみましたが、役に立ちません。

4

1 に答える 1

5

ピアが正常に切断された場合:

  • read()-1 を返します
  • readLine()null を返します
  • readObject(), readUTF()readXXX()XXX は `EOFException をスローします

ピアが異常に切断された場合、接続が悪くなった場合など、読み取りまたは書き込みメソッドはIOException,例外をスローしますが、読み取りタイムアウトのない読み取りは永久にブロックされる可能性があります。これが、( 経由でsetSoTimeout()) 常に読み取り時間を使用する必要がある理由です。

isConnected()ソケットを接続または受け入れたかどうかのみを示します。isClosed()あなたがそれを閉じたかどうかだけを教えてくれます。Socketこれらの APIは、接続ではなくについて通知します

于 2013-03-23T05:58:14.260 に答える