Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于慢速连接的高级套接字字节读取_Java_Sockets_Inputstream - Fatal编程技术网

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,则停止读取。