我希望对等方能够通过WIFI LAN发送DatagramPackets,其唯一目的是发现其他对等方。因此,我每个对等体都由一个客户端(发送数据包)和一个服务器(侦听数据包)组成。

我只能通过在每台计算机上使用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中键入该地址,这似乎毫无意义。

我可以很好地使用多播,但我认为广播是我发现对等体所需要的。

帮助表示赞赏。

最佳答案

将广播地址255.255.255.255用于服务器和客户端。

07-27 13:17