我正在從我從套接字的服務器端接收到的輸入流中讀取數據。我不知道我的回答的大小將是什麼方式,我讀入一個字節數組這是代碼輸入流中的無限循環
public static String readString(InputStream inputStream) throws IOException {
ByteArrayOutputStream into = new ByteArrayOutputStream();
byte[] buf = new byte[4096];
for (int n; 0 < (n = inputStream.read(buf));) {
System.out.println("Got to this point n is "+n);
into.write(buf, 0, n);
}
into.close();
System.out.println("passed this point");
return new String(into.toByteArray(), AddATudeMessage.CHARENC);
}
寫信跟11和235獲得打印到控制檯的數字,所以我假定服務器仍然將輸出寫入輸入流。但它在235被卡住,沒有什麼可以發生。我嘗試暫停主執行線程長達20秒,此時我從服務器接收到241個字節,然後同一無限循環再次發生任何人知道發生了什麼
@crazycasta服務器沒有關閉套接字,我不得不檢查是否有行尾字符,然後我停止閱讀 – sola