[英]send a big byte array through java socket
我有一个长度超过1200000的大字节数组。我想通过DataOutputStream发送它,并通过DataInputStream在客户端接收。
我正在使用代码
out.write(outData)
in.readFully(inData)
out是DataOutputStream,in是DataInputStream,outData是我要发送的字节数组。 当我运行程序时,如果字节数组的长度在120000左右,则可以发送该数组,但是当长度变为1200000时,服务器将无法接收该数组。 我应该将大型阵列拆分为一些小型阵列吗?
我在下面尝试了这样的代码,但仍然无法正常工作。
out.writeInt(outData.length);
int start = 0;
int len = 0;
int count = outData.length;
while (count > 0) {
if (count < 4096)
len = count;
else len = 4096;
out.write(outData, start, len);
start += len;
count -= len;
}
和
int length=in.readInt();
byte[] inData=new byte[length];
in.readFully(inData);
有人可以帮忙吗? 谢谢。
在作家中:
for(int i=0;i<length;i++){ dataoutputstream.writeByte(bytearray[i]); }
在阅读器中:
for(int i=0;i<length;i++){ bytearray[i]=datainputstream.readByte(); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.