InputStream is = handler.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//不过你打算读多少数据啊?这个你得先确定!
//例如读取到Socket被关闭
byte[] buf = new byte[1024];
int readed = -1;
while((readed = is.read(buf)) > 0) {
  baos.write(buf,0,readed);
}
strSocketData = baos.toString();
不过使用上述方式,是必须等待Socket被Close才能返回的

解决方案 »

  1.   

    "不过使用上述方式,是必须等待Socket被Close才能返回的?"
    是不是在socket关闭,strsocketdata都无法使用被赋值呀?另外:getReceiveBufferSize()应该是获取socket数据的长度,是吗?小弟的e文太差了。
      

  2.   

    如果Sock是被正常关闭的,只会出现read返回-1的情况。所以仍然能够返回getReceiveBufferSize()只是缓冲区大小,实际大小是无法得知的,因为对于你的机器来说根本不知道
    对方还有没有数据继续传来,除非Socket已经关闭了