connetion中にサーバーからデータを取得する必要がある場合は、Scanner
オブジェクトを使用するのが良い方法があることを知っています。しかし、私は次のコードスニペットについて質問があります:接続が良好であること
public void sendMessage(String message) {
try {
OutputStream os = socket.getOutputStream();
try {
byte[] buffer;
buffer = message.getBytes();
os.write(buffer);
} finally {
os.close();
}
InputStream is = socket.getInputStream();
try {
StringBuffer data = new StringBuffer();
Scanner in = new Scanner(is);
while (in.hasNext()) {
data.append(in.next());
}
System.out.println(data.toString());
} finally {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
私はそれは私がサーバーにメッセージを送信した直後に起動するのでScanner
は、InputStream
からデータを取得し、スニペットによって混乱しています。サーバーからのデータがメッセージを送信した後すぐにInputStream
に存在しないと仮定するのは公正でしょうか?
このような場合には、InputStream
からデータを読み取るための最良の方法は何ですか、私は何を考慮する必要がありますか?
ありがとうございます!!!私は今理解している、ブロックモードとノンブロッキングモードについてさらにいくつかの情報を見つける必要がある。 – teoREtik