我正在使用BufferedReader.readLine()
方法來讀取來自遠程服務器(用C編寫且我無法訪問源代碼)的響應。插槽:BufferedReader readLine()塊
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
while((line = br.readLine())!=null){
[...]
}
但是它總是阻塞在最後一行直到它超時。所以我用下面的代碼:
int b;
while(true){
b = in.read;
[...]
}
和我發現閱讀的最後一個字節爲13的整數值,我認爲這是一個回車,對不對?
那麼爲什麼readLine
方法阻止?服務器如何通常表示流達到了終點?謝謝。
能否請您粘貼你使用的非阻塞代碼。我期待看到可以爲非阻塞輸入做些什麼 – 2017-02-11 08:16:42