问题描述
在socket通信中,由于inputStream.read(byte)是尽可能的读byte[]大小的数据,当服务端发送数据速度大于客户端读取数据的速度时,就会出现客户端读到多帧连在一起的报文。而这些发送数据,读取数据的速度是未知的。怎么解决这个问题,服务器端不能改变,
解决方案
解决方案二:
想办法将读取的后续动作的耗时降低。比如读取动作只负责读取,读取的内容传给多线程进行处理。
解决方案三:
没用。。。。。
解决方案四:
想到了一个办法,把所有读的数据放到一起,不管每次读的是多少,放在所接收数据就放在一起了,这样就好处理了。。。
解决方案五:
将byte[]的长度设为1,这样每次只读一个字节,没有读到的就会缓存起来,不会出现多帧连在一起的现象
时间: 2024-03-27 17:43:50