Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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

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
使用wireshark获取数据包的Java套接字_Java_Sockets_Wireshark_Outputstream - Fatal编程技术网

使用wireshark获取数据包的Java套接字

使用wireshark获取数据包的Java套接字,java,sockets,wireshark,outputstream,Java,Sockets,Wireshark,Outputstream,我的客户机代码如下: socket = new Socket("10.105.1.20", 5678); DataOutputStrean dos = new DataOutputStream(socket.getOutputStream()); short len = 4; dos.writeByte(len); dos.writeByte(len >> 8); dos.writeShort(0x0410); dos.flush(); 发

我的客户机代码如下:

   socket = new Socket("10.105.1.20", 5678);
   DataOutputStrean dos = new DataOutputStream(socket.getOutputStream());
   short len = 4;
   dos.writeByte(len);
   dos.writeByte(len >> 8);
   dos.writeShort(0x0410);
   dos.flush();
发送到服务器的数据应该是4个字节。但是当我使用wireshark获取数据包时,数据是3个字节

   00 04 10
我想应该是这样

   04 00 04 10

第一个字节04在哪里?我的代码中是否有错误或与wireshark.THX有关,请提供帮助

Java中的短基元数据类型是16位

这显示了如何将短字符转换为字节[],这可能就是您要查找的内容


此外,这还有关于字节顺序的更多信息。

没有任何东西可以保证所有四次写入都将在同一个数据包中发送。可能第一个字节是自己发送的,接下来的三个字节由Nagle算法合并。您可以使用BufferedOutputStream并在希望发送写操作时刷新它,但仍然无法保证。TCP可以按自己喜欢的方式对数据进行分段。

无法解释观察结果。是的,我在上一个数据包中找到了第一个字节。在我的客户端和服务器中发送的每条消息都将分为两段(1个字节+下一个字节)