我最近在一个套接字项目上。当我调试我的代码时,我发现了一个问题,但我找不到原因,下面是我的代码
// some code that open a socket connection and put inputstream into a BufferedReader called 'in'
String input;
input= (String)in.readLine();
do{
System.out.println(input);
}while(input!=null);
out.close();
in.close();
Socket.close();
如您所见,上面的代码创建了一个无限循环,当我从服务器端发送一个字符串时,它会保留 println 该字符串。
如果我像下面那样做
String input;
do{
input= (String)in.readLine();
System.out.println(input);
}while(input!=null);
out.close();
in.close();
Socket.close();
问题解决了,效果很好。每次我从服务器站点发送一个字符串时,它只打印一次。但它没有退出循环并转到下一行来关闭套接字连接。
所以这是我的问题。如果我把它放在 do while 循环中。应该循环结束并转到下一行然后断开连接吗?谁能解释为什么 do while 循环只执行一次而没有转到下一行?
最好的