我的数据通信类(class)分配给了我,要求我通过 UDP 封装 IP 数据包。然后我需要将这个手动制作的数据包封装到一个实际的 UDP 数据包中并通过 IP 发送它。这将产生以下协议(protocol)栈(蓝色表示我将手动创建的 header ):
在 Java 中有没有一种简单的方法可以做到这一点?我知道在 C 中我可以使用为 Linux 内核库中的 UDP 和 IP header 定义的结构,手动填充所有字段,并将信息连接到数据包中。但是,在 Java 中,我将无法访问 Linux 网络头文件。我也在尝试在不使用外部 API 的情况下执行此操作。
澄清一下,我计划使用 Eclipse 开发应用程序 Linux。
最佳答案
实际上,您可以尝试通过 Java Native Access 访问 Linux 内核库。
像这样: ( http://jnaexamples.blogspot.tw/2012/03/java-native-access-is-easy-way-to.html )
您可以将 TCP 数据包结构包装在 native c 代码中,然后从 java 套接字发送。
同时,如果您想组装 java中的TCP/IP数据结构。 ( http://jnetpcap.com/node/29 )
关于java - Java中的数据包封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773097/