Java でかなり単純なクライアント/サーバー アプリケーションを作成しようとしています。クライアントには 2 つのスレッドがあり、サーバーには (クライアントごとに) 2 つのスレッドがあり、1 つは入力用と出力用です。Object Streams を介してほぼ常に双方向にデータを送信しています。Read() ブロック。read() スレッドに割り込む (つまり、切断する) ことができる必要があります。どうすればいいですか?
3 に答える
2
入力用のソケットをシャットダウンします。これにより、ブロックされた読み取りがスローされEOFException
、ソケットを閉じてスレッドを終了する必要があります。
于 2012-07-23T01:38:46.493 に答える
1
を閉じるSocket
と、read
メソッドは。で中断されますIOException
。その例外を処理して、スレッドをクリーンアップします。
于 2012-07-23T01:41:13.743 に答える
0
非ブロッキング呼び出しを使用するか、スレッドで割り込みメソッドを使用できます。中断されると、読み取り操作は例外をスローし、これをキャッチしてスレッドを適切に終了できます。
于 2012-07-23T14:02:40.203 に答える