【发布时间】:2014-11-28 02:16:03
【问题描述】:
我的 android 智能手机是 tcpclient,chipkit wf32 wifi 模块是我的 tcp 服务器。
int bytesRead;
InputStream inputStream = socket.getInputStream();
while ((bytesRead = inputStream.read(buffer)) != -1){
byteArrayOutputStream.write(buffer, 0, bytesRead);
response += byteArrayOutputStream.toString("UTF-8");
}
上面的代码从流中读取数据并复制到缓冲区。如果没有数据到来,它将阻塞。但有时我得到-1。谁能解释得到-1的原因?在文档中提到“到达流的结尾”。但是你能解释一下它的含义吗?谢谢。
【问题讨论】:
-
这意味着您的流不再包含任何剩余数据;您已到达信息流的末尾。
-
流的结尾是什么意思?套接字流长度等于我从服务器发送的数据的长度。不是吗?如果流中有数据,它应该返回数据。如果没有数据,它应该等到收到数据吗?这里流的结尾是如何进入图片的?
-
@Kumar 能给我点钱吗?你的钱包是空的是什么意思?
-
@ElliottFrisch 您的意思是 tcpserver 没有更多数据要发送,并且由于客户端的输入流到达了流的末尾吗?
-
@Kumar 不。我的意思是客户说没有更多数据要读取。