我已经为我的数据通信类分配了一个任务,我需要通过UDP封装IP数据包。然后,我需要将此手动数据包封装到实际的UDP数据包中并通过IP发送。这将产生以下协议栈(蓝色表示我将手动创建的标题):
在Java中有一种简单的方法吗?我理解在C中我可以使用在Linux内核库中为UDP和IP头定义的结构,手动填充所有字段,并将信息连接到数据包中。但是,在Java中,我将无法访问Linux网络头文件。我也试图在不使用外部API的情况下这样做。
为了澄清,我计划使用Eclipse开发应用程序Linux。
答案 0 :(得分:1)
实际上,您可能尝试通过Java Native Access访问Linux内核库。
像这样: (http://jnaexamples.blogspot.tw/2012/03/java-native-access-is-easy-way-to.html)您可以将TCP数据包结构包装在本机c代码中,然后从Java套接字发送它。
同时,如果要组装,jnetpcap库可能是您的编码参考 java中的TCP / IP数据结构。 (http://jnetpcap.com/node/29)