下面的代码为什么在首次进入循环时阻塞,而第二次进入循环时就不阻塞,并且抛出异常                       BufferedReader in=new BufferedReader(new InputStreamReader (Socket.getInputStream()));                        
                       while(flag)

                      {
                        responseline=in.readLine();//首次阻塞,以后不阻塞,抛出异常
byte[] byteRecieve=new byte[256];
byteRecieve=responseline.getBytes();

int l=responseline.length();
System.out.printf("Message is:  ");
for(int i=0;i<l;i++)
System.out.printf("%02X ",byteRecieve[i]);
}
请大家指点

解决方案 »

  1.   

    What kind of server are you connecting to?
    What kind of exception do you get?
      

  2.   

    就是简单的socket 连接,客户端循环接收服务端发送回来的数据,然后打印出来,异常是responseline=in.readLine();返回为空,因为服务端还没输入数据,但是为什么他不阻塞等待数据的输入,而第一次就等待了
      

  3.   

    What do you get from server? Is it null or zero-length String?I think you'd better add some logic to handle it, such asif (responseline != null && responseline.length() > 0) {
    // Do something
    }
    else {
    // Do something else
    }
      

  4.   

    I have  sovled the  problem。thank u