我正在尝试制作客户端/服务器 Java 应用程序。客户端和服务器都将在同一个 wi-fi 网络上运行。服务器将在客户端知道的特定端口上运行。
我计划从客户端通过网络为特定端口发送多播消息以发现服务器。但是,我不太确定如何找出我网络中的哪个 IP 收到了我的消息。
我是否需要在客户端创建套接字并在发送多播消息后监听传入的数据包以防服务器回复?
提前致谢。
最佳答案
(1)服务器监听一个预先安排好的端口
DatagramSocket s = new DatagramSocket(8888);
s.receive //(1)
s.send //(2)
(3)客户端向端口发送消息,在广播IP上,255.255.255.255
DatagramSocket c = new DatagramSocket();
c.send(255.255.255.255:8888,msg) //(3)
c.receive //(4)
客户端也绑定(bind)到一个端口。我们没有指定它,所以它是为我们随机选择的。
(3) 将消息广播到所有本地机器,(1) 的服务器接收消息,客户端IP:端口。
(2)服务器向客户端IP:端口发送响应报文
(4) 客户端得到服务器的响应信息。
关于java - 使用多播在 Java 中进行网络发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258959/