如何从套接字连接中读取数据 - android

时间:2010-10-14 22:24:33

标签: android sockets

我有TCP客户端应用程序,它成功协商与服务器的连接并接收缓冲输出,但我需要知道的是如何读取服务器响应而无需等待缓冲区填写或服务器到终止连接。
在这个循环中:

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
   ...some code here...         
}

我的应用程序只是冻结 如果缓冲区为空并继续执行程序,如何只读取一行或空字符串? 是否有可能超时这个读数,给服务器一些时间来回应?

1 个答案:

答案 0 :(得分:0)

底层协议应提供某种同步,例如HTTP的Content-Length\n\r

否则,即使您的程序逐字节读取,您也会被阻止。

或者您可以使用non-blocking socket