我已經編寫了用於從客戶端套接字發送/接收數據的代碼。發送數據步驟已成功完成,但是當我想從套接字讀取數據時,readLine()
方法在沒有要讀取數據的情況下阻止程序。從Java客戶端套接字讀取數據
這是我的代碼:
StringBuffer document = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
document.append(line + "\n");
reader.close()
感謝所有 可以閱讀所有接收到的數據,但的readLine或讀取(字節[],INT,INT)方法阻止程序時沒有數據讀取,而此時這個方法必須返回null/-1。
您正在交換基於字符的行格式的數據嗎? 當沒有足夠的數據可用於構建下一行時,您期望readLine()如何處理(如果不阻止)? – 2012-07-09 07:45:22
我嘗試讀取(byte [],int,int)來讀取字節,但它再次被阻塞。對我來說這很奇怪,爲什麼read()會在沒有數據時阻塞。 – RedFlow 2012-07-09 07:59:42