2016-10-04 11 views
0

私はjavaでサーバークライアントアプリケーションを実装しています。 クライアントがサーバーに何らかのメッセージを送信し、サーバーが応答する(応答しない)可能性があります。readUTFメソッドに受け取るべき値があるかどうかをチェックする方法


は、今私がメッセージを取り戻すためにis.readUTF();メソッドを使用しています。この

is = new DataInputStream(client.getInputStream());

を見てください。

問題は readUTFがブロッキングコールであり、メッセージを受信するためにプログラムを停止させるという問題です。 私はサーバーが応答するかどうか、readUTFメソッドを停止してメッセージがあるかどうかをチェックし、メッセージが受信されない場合は続行する方法が必要であると述べました。

+0

いずれにしても、サーバーが応答するようにします。また、クライアントが応答を受信する前に続行できる場合は、2番目のスレッドで通信します。 – xehpuk

答えて

1

DataInputStream.available()を使用して、読み取るデータがあるかどうかを確認し、のソケットをhereとラップします。

関連する問題