0

ソケットに関連する入力ストリームからの読み取りと書き込みについて質問があります。たとえば、私は

ServerSocket testie = new ServerSocket(0);
Socket putClient = new Socket("localhost",testie.getLocalPort());
InputStream is = putClient.getInputStream();
OutputStream os = putClient.getOutputStream();
os.write("testt".getBytes());
System.out.println(convertStreamToString(is));

しかし、「testt」は奇妙なことに印刷されません。方法convertStreamToStringは以下から

InputStream を読み取って文字列に変換する

public static String convertStreamToString(java.io.InputStream is) {
    java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
    return s.hasNext() ? s.next() : "";
}

ストリームとソケットの理解に問題がありますか? ソケットの出力ストリームに書き込んだ場合、入力ストリームから取得できると思いましたか? メソッドは無期限にハングします。

4

1 に答える 1