Java 用于慢速连接的高级套接字字节读取
我只想问一个简单的问题也许。。。 如果连接速度慢,建议不要一次读取整个字节。。。 那么,最有效的套接字读取算法是什么 由于我在读取套接字时经历过几次,有时字节流没有完全传输,使其成为无效数据 目前我正在读取套接字,如下所示:Java 用于慢速连接的高级套接字字节读取,java,sockets,inputstream,Java,Sockets,Inputstream,我只想问一个简单的问题也许。。。 如果连接速度慢,建议不要一次读取整个字节。。。 那么,最有效的套接字读取算法是什么 由于我在读取套接字时经历过几次,有时字节流没有完全传输,使其成为无效数据 目前我正在读取套接字,如下所示: byte[] message = new byte[lengthOftheByte]; byte buffer = 0; int count = 0; while(count < lengthOftheByte) { int read = myInputStrea
byte[] message = new byte[lengthOftheByte];
byte buffer = 0;
int count = 0;
while(count < lengthOftheByte) {
int read = myInputStream.read();
buffer = (byte) read;
message[count] = buffer;
count++;
}
byte[]消息=新字节[lengthOftheByte];
字节缓冲区=0;
整数计数=0;
while(计数
它读取单个字节,然后将其放入数组的元素中
它在单个读取进程上工作,但不在线程内…:(使用
read(byte[])
或BufferedInputStream
。但是,建议所有连接都使用此技术,而不仅仅是慢速连接。如果您的连接速度较慢,因此您受到输入限制,您对代码所做的任何操作都可能会有所帮助。您所说的“但不在线程内”是什么意思?您的问题不是很清楚…它使其成为无效数据,因为您存储了读取的字节,并继续从流中读取,即使已到达末尾。您应该始终测试读取的结果,如果结果为-1,则停止读取。