【发布时间】:2014-01-06 21:08:18
【问题描述】:
我正在尝试对将发送方 IP 地址、目标 IP 地址、发送方端口、目标端口和有效负载数据组合在一起的网络数据包进行编码/解码。
我一直在阅读执行此操作的不同方法,并且到处都建议使用 Socket 类 - 但是,我们不能在我们的程序中使用像这样的真实网络类,因为它只是一个没有真实网络组件的模拟应用程序.
我很困惑如何在不使用 DatagramPacket 或 DatagramSocket 之类的类的情况下创建网络数据包。有效载荷数据为byte[] 形式,IP 地址为InetAddress。我假设我可能不得不使用某种ByteArrayOutputStream 将所有这些元素组合成一个byte[] 类型的网络数据包。
任何关于我如何做到这一点的建议将不胜感激。
【问题讨论】:
-
套接字是通过我相信的操作系统处理的。 Java 库只是与操作系统交互。我什至不认为 Windows 允许原始数据包访问。也就是说,有些数据包它甚至不让你发送
-
如果数据无处可去,您肯定只想将其存储在
byte[]中并完成处理? -
这正是我想要做的,但我对如何将发送/接收 IP 地址、发送/接收端口号和字节 [] 中的有效负载组合在一起感到困惑字节[].
标签: java sockets networking packets