Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String number;
list.clear();
while ((number=br.readLine())!=null){
list.add(number);
}
当我试图从缓冲的阅读器中读取数据时,我得到了数据。但是如果数字等于null,我就无法退出while循环。
答案 0 :(得分:1)
readLine()
在流处返回null,而不是之前,并且套接字上的流结束仅在对等方关闭连接时发生。你的期望似乎是错误的。
答案 1 :(得分:-1)
这是因为您无法理解readline函数及其实现。您正在从缓冲区读取数据并将数据与null进行比较,这显然不是您想要的。所以这就是我喜欢从TCP套接字读取数据的方法。
while(statement == true){
int count = bufferedInputStream.read(buffer);
if (count == -1){
// Socket has been closed
} else {
// Data has been read.
// Do comparison here.
}
}
希望这有帮助。