在一项任务中,需要通过将 2 台笔记本电脑中的无线 LAN 卡切换到 ad hoc 模式,然后选择合适的 SSID,在 2 台笔记本电脑之间形成一个 ad hoc 网络。我在labtops 之间创建了一个adhock 网络。然后需要开发一个“Sender”和一个“Receiver”应用程序,从一台笔记本电脑发送一个简单的“Hello World”消息,并使用套接字在另一台笔记本电脑上接收它。我使用 udp 数据报套接字和 udp 数据包成功地做到了(在 java 中),因为 adhoc 网络中没有服务器。唯一的问题是,数据包格式应如下所示,其中数据表示为最大长度 = 64 KB 的字节数组(假设提供 IP 地址2个字节):
| | | | | | | | | | | |H|E|L|L|O| |W|O|R|L|D|
__________|___________|
Sender ID |Reciever ID| data
(4 bytes) (4 bytes)
我知道在接收方,您可以使用 packet.getAddress(); 获取发送数据包的地址。并且接收方的地址是已知的,但我不明白这种格式的目的或如何设置数据包的格式。我只想知道 udp 数据包的实际格式是什么以及如何在 java 中设置 udp 数据包的格式。如何通过指定缓冲区字节数组、intelAddress 和端口来创建 dataGram 数据包来设置数据包的格式?我是否需要将缓冲区字节数组修改为与上述相同的格式(尽管发送方的地址无论如何都会发送)?请尽快回复我。任何帮助将不胜感激。提前致谢。