qq_40634961
qq_40634961
2019-02-25 21:09

NIO中的SocketChannel多次write之后 用read如何做到区分多次的数据

  • java

例如socketChannel.write(ByteBuffer) buteBuffer的长度可能随时变更,但是接收的时候read方法是以一个固定的长度接收的

发送方

byte[] outData = new byte[2048];
ByteBuffer outByteBuffer = ByteBuffer.wrap(outData);
toWriteNrBytes = 获取数据返回一个长度;
outByteBuffer.limit(toWriteNrBytes);
socketChannel.write(outByteBuffer);

接收方

byte[] inData = new byte[2048];
ByteBuffer inByteBuffer = ByteBuffer.wrap(inData);
readNrBytes = socketChannel.read(inByteBuffer);

可是这个readNrBytes并不能实时的到每次写入的长度,请问怎么解决

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答