日期:2014-05-20  浏览次数:20726 次

一个网络通信的问题
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

------解决方案--------------------
接收到的数据无换行符,readLine()阻塞.服务端数据后加 '\n '应该可以解决.
------解决方案--------------------
public String readLine()
throws IOException读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ( '\n ')、回车 ( '\r ') 或回车后直接跟着换行。

返回:
包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null