Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用javanio套接字重新组装数据包_Java_Sockets_Nio - Fatal编程技术网

如何用javanio套接字重新组装数据包

如何用javanio套接字重新组装数据包,java,sockets,nio,Java,Sockets,Nio,如果我有两个到服务器的连接,需要在一个通道上进行多次读取才能完成一个数据包,那么我如何知道哪个读取与哪个数据包一起进行 例如,作为四个交织缓冲器接收的两个数据包: PacketA缓冲器第1部分 PacketB缓冲器第1部分 PacketA缓冲器第2部分 PacketB缓冲器第2部分 第一部分可能有一个报头,但第二部分可能会被拆分到数据包的任何位置 当接收部分数据包时,我如何知道哪个缓冲区去了哪里 我正在考虑构建一个映射,将每个通道对象与其各自的输出缓冲区相关联,输出缓冲区将保存重新组装的数据

如果我有两个到服务器的连接,需要在一个通道上进行多次读取才能完成一个数据包,那么我如何知道哪个读取与哪个数据包一起进行

例如,作为四个交织缓冲器接收的两个数据包:

  • PacketA缓冲器第1部分
  • PacketB缓冲器第1部分
  • PacketA缓冲器第2部分
  • PacketB缓冲器第2部分
第一部分可能有一个报头,但第二部分可能会被拆分到数据包的任何位置

当接收部分数据包时,我如何知道哪个缓冲区去了哪里


我正在考虑构建一个映射,将每个通道对象与其各自的输出缓冲区相关联,输出缓冲区将保存重新组装的数据包。这是应该采用的方式吗?

事实上,典型的做法是为每个通道设置单独的缓冲区。你不一定需要地图。您可以单击每个
选择键
。每个键都可以保存您选择的对象,您的代码可以稍后检索该对象。这是存储缓冲区或一组缓冲区的方便地方