【发布时间】:2011-11-06 08:04:04
【问题描述】:
我只是想问一个简单的菜鸟问题可能...... 如果连接速度很慢并且不建议一次读取整个字节... 那么什么是最好的套接字读取算法呢?
由于我在读取套接字时经历过几次,有时字节流没有完全传输并使其成为无效数据...
目前我正在像这样读取我的套接字:
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++;
}
它读取单个字节,然后将其放入数组的元素中 它适用于单个读取进程,但不适用于线程中...... :(
【问题讨论】:
-
“但不在线程内”是什么意思?你的问题不是很清楚...
-
它使它成为无效数据,因为您存储读取的字节并继续从流中读取,即使已到达末尾。您应该始终测试读取的结果,如果它是 -1 则停止。
标签: java sockets inputstream