我希望 Peer(s) 能够通过 WIFI LAN 发送 DatagramPackets,其唯一目的是发现其他 Peer。所以,我让每个 Peer 都由一个客户端(发送数据包)和一个服务器(监听数据包)组成。
我只能通过在每台机器上使用 IPConfig 来获取它们各自的 IPv4 地址,然后将其用作创建 DatagramPacket 的参数,才能使其工作:-
InetAddress server = InetAddress.getByName("THE IPv4 ADDRESS OF THE PEER'S SERVER
RUNNING ON THE OTHER MACHINE");
DatagramPacket sendPacket = new DatagramPacket(outBuffer, outBuffer.length,
server, serverPort);
我是否在这里以正确的方式使用广播(用于对等发现),因为如果我这样做对我来说似乎很垃圾?我假设我可以让 machineA 上的客户端将数据包发送到 LAN 深渊,并且在 machineB 上运行的服务器将监听整个 LAN 并检测数据包。目前我所做的只是在运行服务器的机器上手动使用 IPConfig 并在运行客户端的机器上的 DatagramPacket 中键入该地址,这似乎毫无意义。
我可以很好地使用多播,但我认为广播更适合我进行对等发现的需要。
帮助表示赞赏。