inData =new BufferedReader(
                            new InputStreamReader(
                                    MySocket.getInputStream(), "GB2312"));
String SrvSendText;
SrvSendText = inData.readLine();          
ChatText.setText("SrvSendText: "+SrvSendText+"\n");连接是通的,如果注释SrvSendText = inData.readLine(); 或断开连接,就可以运行下面一句ChatText.setText("SrvSendText: "+SrvSendText+"\n");否则都不运行下去请问这是什么回事呢??
如果读到空的是不是也应该输出"SrvSendText: "呢,我在服务端也发了数据过来了,但也是如此我搞了好久,知道的一定要帮帮啊,SOS sos SOS

解决方案 »

  1.   

    接收到的数据无换行符,readLine()阻塞.服务端数据后加'\n'应该可以解决.
      

  2.   

    我后台是开着的,但是不发数据我前台用ReadLine()来读,这样也会阻塞吗?抛出的异常是java.net.SocketTimeoutException: Read timed out我是这样取的数据
    try
    {
      while (MySocket.isConnected())
      {
         String aa=inData.readLine();                    
         ChatText.append(aa + "\n");
      }
    }
    catch(IOException e)
    {
       ChatText.append(e+"\n");
    }
      

  3.   

    public String readLine()
                    throws IOException读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。 返回:
    包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null