【发布时间】:2017-08-04 06:27:19
【问题描述】:
我正在尝试使用inputStream.available() 连续读取 tcp 套接字上的数据字节计数。如果返回值大于 0,则使用inputStream.read(byte[inputstream.available()] b) 从 TCP 读取数据。但只有当我们收到带有 [PSH,ACK] 的数据(在 Wireshark 中)时,它才会返回计数。当只有具有 [ACK] 的数据(在 wireshark 中)时,它每次都返回 0,直到没有收到具有 [PSH,ACK] 的数据。只有当服务器需要发送大量数据时才会发生(不知道服务器实现)。
这里是sn-p的代码:
while(inputStream.available()>0){
byte [] bytesFromServer=new byte[inputStream.available()]
inputStream.read(bytesFromServer);
}
问题是:- 1.我可以不用担心数据中的[PSH,ACK]或[ACK]标志读取数据吗? 2. 为什么服务器端有[PSH,ACK]标志的数据需要时间。
【问题讨论】: