通过java socket发送一个大字节数组

时间:2014-10-05 16:41:53

标签: java sockets

我有一个长度超过1200000的大字节数组。我想通过DataOutputStream发送它,并通过DataInputStream在客户端接收。

我正在使用代码

    out.write(outData)

    in.readFully(inData)

out是DataOutputStream,在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);

有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

在作家:

for(int i=0;i<length;i++){ dataoutputstream.writeByte(bytearray[i]); }

读者:

for(int i=0;i<length;i++){ bytearray[i]=datainputstream.readByte(); }

相关问题