。。先看一小段代码吧,
private class ReceiveThread implements Runnable { public void run() {
try {
while (true) {         String s = "fuck another problem"; s = in.readUTF(); System.out.println("从服务器接收数据:" + s);
new GuiController().react(s);
}
} catch (IOException e) {
e.printStackTrace();
} }
}我的目的是一个while死循环轮询,这是我客户端的代码,然后想让它一直轮询读取服务器返回的数据,可惜这个while只能执行一次就停了,貌似是readUTF()阻塞了,我晕了,调不出来额,各位大神看看,帮我出出主意,唉,马上就要交作业了,桑心~,

解决方案 »

  1.   

    。。那为什么我服务器可以一直用while死循环一直监听从客户端发来的数据,
      

  2.   

    因为 Socket 连接没有关闭,且 Socket 中没有数据,因此阻塞式 IO 会在 read 那里堵着。
      

  3.   

    ..那有没有什么更好的解决方法,要不要换一种read方式,唉,纠结的让我好蛋疼,好蛋疼,好蛋疼,
      

  4.   

    要不用readLine();一行一行的读取数据
      

  5.   

    ..readline()和这个好像没关系,我是用socket传送数据的,