服务端开发工具:delphi,非阻塞的socket,
Androrid客户阻塞接收,但是接收不到.代码如下:
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inStr = in.readLine();
到服务端发回文字信息时,客户端阻塞在上面一行代码,始弱收不到消息.
请问如何能让客户端接收到服务端的消息.
------解决方案--------------------
阻塞与否只是数据发送的问题,数据是没有区别的,只要有就能收到。
------解决方案--------------------
楼主的代码是 按行读取数据,是否服务器也发送了行数据 ,也就是是否有换行符\r\n 之类的。
试试这样读取,按字节流。
BufferedInputStream bis = new BufferedInputStream(ins);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[128];
int n = -1;
while ((n = bis.read(buffer)) != -1) {
bos.write(buffer, 0, n);
//这地方可以转换一下数据,分析一下数据是什么。
}
} catch (IOException e) {
e.printStackTrace();
}
------解决方案--------------------
那就要看看服务器端的问题了,用telnet 试试服务器。
------解决方案--------------------
PHP是单线程,别想了。。
------解决方案--------------------
还遇到过阻塞的情况