当我尝试读取InputStream时,从服务器读取会花费大量时间。该过程读取一些字节暂停5分钟,再次读取,这样它继续。但线程在读取一些字节后挂起。有没有办法快速读取字节?
答案 0 :(得分:0)
如果您正在从任何设备读取字节,您应该期望read()在一段时间内阻止。这需要多长时间取决于设备。如果它是一个Socket,它取决于另一端发送数据和您的网络特征。
如果您希望连接检测到失败的Socket连接,请让另一端发送常规心跳,除非在有限的时间内收到数据包,否则您可以认为连接已经死亡。
答案 1 :(得分:0)
该进程读取一些字节暂停 持续5分钟
这是什么意思。你暂停了,还是暂停了?
如果您暂停5分钟,请不要打扰。 read()将阻塞,直到数据可用。这可能不到5分钟,所以你可能会浪费很多时间。
如果它正在暂停,那是因为read()将阻塞,直到数据可用(见上文)。这意味着服务器的发送速度不如您预期的那么快。所以要调查一下,而不是接收者的行为。