当前位置:   article > 正文

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

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. // 读取长度
  4. int contentLength = readInt();
  5. // 如果消息的长度不够
  6. if (contentLength > in.available(
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/453974
推荐阅读
相关标签
  

闽ICP备14008679号