加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]Java post发送和接收大数据量的方法

(2016-09-02 16:54:32)
标签:

转载

post 发送和接收大数据量的方法:
DataOutputStream 的buffer存在8K限制
客户端发送:
OutputStream os = con.getOutputStream();
            DataOutputStream dos = new DataOutputStream(os);
            dos.writeInt(100);// client version
            dos.writeInt(bytes.length);
            int offset = 0;
            int LEN = 1024;
            while (bytes.length - offset > LEN) {
                dos.write(bytes, offset, LEN);
                offset += LEN;
            }
            dos.write(bytes, offset, bytes.length - offset);

            dos.flush();
            dos.close();

服务器端接收:
        int len = in.readInt();
        debugInfo("data len:" + len);
        if (len < 0) {
            logger.error("readBytes error. len:" + len);
            return null;
        }
        if (len == 0) {
            return null;
        }
        byte[] data = new byte[len];
        int index = 0;
        int LEN = 1024;
        if (len < LEN) {
            in.read(data);
        } else {
            int length = in.read(data, index, LEN);
            while (length > 0) {

                index += length;
                length = in.read(data, index, LEN);
            }
        }

        return data;

或者使用BufferedInputStream dis = new BufferedInputStream(
                    con.getInputStream());
读取。

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有