- Java code
// 读取数据 private class readThread extends Thread { public void run() { BufferedInputStream inStream = null; String s = new String(); try { inStream = new BufferedInputStream(socket.getInputStream()); while (true) { byte[] buffer = new byte[1024]; inStream.read(buffer); String str = new String(buffer); Log.i("", str.trim()); s += str.trim(); Log.i("333333333333333333", s); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { Message msg = new Message(); Log.i("222222222", s); msg.obj = s; msg.what = 1; LinkDetectedHandler.sendMessage(msg); s = new String(); } } }
为什么finally里的代码不执行?
------解决方案--------------------
------解决方案--------------------
可能是socket没有数据写入,造成read()函数阻塞吧
------解决方案--------------------
有数据写进来就不会阻塞了啊
------解决方案--------------------
肯定是因为 没有 读取到数据的缘故,阻塞在那里了。
你可以用System.in.read();代替,都是等到接收数据的。只是这个要你从控制台输入,不然就一直等在那里。跟你代码的场景是一样的。
------解决方案--------------------