3

我被分配了一个数据通信类的任务,我需要在 UDP 上封装一个 IP 数据包。然后我需要将这个手动制作的数据包封装成一个实际的 UDP 数据包并通过 IP 发送。这将产生以下协议栈(蓝色表示我将手动创建的标头):

在此处输入图像描述

有没有一种简单的方法可以在 Java 中做到这一点?我知道在 CI 中可以使用为 Linux 内核库中的 UDP 和 IP 头定义的结构,手动填充所有字段,并将信息连接到数据包中。但是,在 Java 中,我将无法访问 Linux 网络头文件。我也在尝试在不使用外部 API 的情况下做到这一点。

为了澄清起见,我计划使用 Eclipse 开发应用程序 Linux。

4

1 回答 1

1

实际上,您可以尝试通过 Java Native Access 访问 Linux 内核库。

像这样:(http://jnaexamples.blogspot.tw/2012/03/java-native-access-is-easy-way-to.html

您可以将 TCP 数据包结构包装在本机 c 代码中,然后从 java 套接字发送。

同时,如果你想在java中组装TCP/IP数据结构,jnetpcap库可能是你的编码参考。( http://jnetpcap.com/node/29 )

于 2013-11-21T11:08:44.220 回答