Java多播/广播Java中的网络发现

时间:2011-12-10 10:08:28

标签: java networking broadcast multicast

以下是我正在尝试做的事情 - 服务器向网络上的所有PC以及正在运行的PC发送“活动消息”,通过发送IP来响应呼叫。

我正在寻找一个轻量级的编码,因为这将构成我应用程序的一小部分。

我看过Jini和其他服务,但发现我可能不需要他们的一半功能(网络发现除外)

我是否可以: 1.使用for循环,服务器打开套接字,检查(使用for循环)是否可以通过发送“Alive”消息来访问所有IP x.x.x.x. 2.在特定套接字的客户端收到“alive”消息后,客户端将回复其IP。

这种方法好吗?你认为我能以更好的方式做到吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

很久以前我遇到过类似的问题,我解决了以下问题:

  • 服务器在网络上广播UDP数据包到255.255.255.255
  • 所有可访问的客户端都将使用包含其IP和您要发送的任何其他信息的UDP数据包进行响应。

我个人使用的数据包看起来像

public class UDPDiscoveryPacket{
      public final long sendingTime;
      public final String clientIP;
      public UDPDiscoveryPacket(long sendingTime, String clientIP){
         this.sendingTime = sendingTime;
         this.clientIP = clientIP;
      }
}