各位好
以下是一段socket只用来接收的代码,我用debug调试,在accept()后,执行到标记处就执行不下去了,这是为什么呢?
- Java code
// receiver class class ServerListener extends Thread{ Socket serverSocket = null; @Override public void run() { while(true){ try { Log.w(TAG_LISTENER, "ServerListener run() {"); serverSocket = mSocket.accept(); BufferedInputStream in = new BufferedInputStream(serverSocket.getInputStream()); byte[] reader = new byte[10]; int count = 0; boolean flag = false; while((count = in.read(reader))>0){ <--- 执行不下去了 flag = true; bq.enQueue(reader[0]); Log.w(TAG_LISTENER, reader.toString() + " is added to byteQueue"); } Log.w(TAG_LISTENER, "***** ServerSender start"); if(flag){ new ServerSender(serverSocket).start(); flag = false; } } catch (IOException e) { e.printStackTrace(); } Log.w(TAG_LISTENER, "}"); } } }
先谢谢了。
------解决方案--------------------
in.read(reader) 是堵塞性方法,楼主可以找一下这方面的资料看一下。