Java中对于字节流的读取方式

大家好:

今天我想介绍一下socket中字节流的读取方式,避免在socket读取过程中发生的断包问题。

1.设计字节发送的方式

在字节流的读写过程中,需要先发送一个代表发送内容长度的字节,然后再发送内容,在接收端先接受发送端发送的内容长度,再根据长度来读取相应的内容。

2.构建字节流的读写类

 

 
  1. BufferedInputStream in = new BufferedInputStream(socket.getInputStream());

  2. BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());

 3.发送端的发送方式

 

 

 
  1. out.write(NumberUtil.intToByte(data.length));// NumberUtil类是把int和字节转换的类,在附件中附送

  2. out.write(data);

  3. out.flush();

 4.接收端的接收方式

 

 

 
  1. protected byte[] read() throws IOException {

  2. byte[] buf = null;

  3. // 读取长度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值