通过servlet传输字节数组,客户端发送字节数组代码如下:
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeInt(bytes.length);
out.write(bytes);服务端接收字节数组的代码如下:
               DataInputStream in = new DataInputStream(req.getInputStream());
int length = in.readInt();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] byteChunk = new byte[4096]; // Or whatever size you want to read in at a time.
while ( (n = in.read(byteChunk)) > 0 ) {
outStream .write(byteChunk, 0, n);
}
outStream .flush();
byte[] s = outStream .toByteArray();
outStream .close();当数据量较少时,没有问题,但是当数据量到1 2百kb的时候,服务端接收就出现了问题,请问这个问题该怎么解决?
谢谢

解决方案 »

  1.   


    你定义的byteChunk怎么一直添加数据啊,
    你应该做处理的,不然你一直放数据进去,当然会有放不下的时候。
      

  2.   

    byteChunk是用来每次从输入流获取一定数目的字节,然后写入到ByteArrayOutputStream,这个应该没有错
      

  3.   

    我在服务器和本机抓包,数据是确实通过http传过去了,现在怀疑是serlvet读取数据时出问题了,不知有谁遇到过这种情况没有
      

  4.   

    貌似超过了最大Post size,看似limit是65536
      

  5.   

    maxPostSize我也改个,但结果还是一样。服务器上有iis和tomcat,发往tomcat的数据是通过iis转发的。当数据出现部分相同时,数目刚好是1460的整数倍,1460刚好是一条tcp流携带的数据量