ソケットに関連する入力ストリームからの読み取りと書き込みについて質問があります。たとえば、私は
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
は以下から
public static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
ストリームとソケットの理解に問題がありますか? ソケットの出力ストリームに書き込んだ場合、入力ストリームから取得できると思いましたか? メソッドは無期限にハングします。