我的程序是单线程的,当我发出数据时就开始等待接收InputStream socketReader = MeterReaderActivity.socket.getInputStream();nrtn = socketReader.read(bufrec);我现在用的是这种方式接收的,但是当没有数据发出时,程序会一直等在  socketread.read() ,有没有其他方法去读接收缓冲区,有数据就读出来,没有数据就直接往下走?

解决方案 »

  1.   

    别说“多线程”了,
    发送完数据总要等回码的,等到了就显示,等不到就要在规定时间提示。
    就算多线程的话也是挂在那等死了,连超时时间都没法判断JAVA 肯定有其他方法的,谁来指点下啊
      

  2.   

    建立一个 异步的套接字 就可以了
    http://www.wasw100.com/java/java.nio/NbClient.html
      

  3.   

    楼上方法是可行的,java 中的 nio 类中包括的 socketchanle 就是用来处理非阻塞的