2011-12-10 88 views
0

以下是我正在尝试做的事情 - 服务器向网络上的所有PC和正在运行的PC发送“Alive消息,通过发送它们来响应呼叫IP。Java多播/广播Java中的网络发现Java

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

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

可以的,如果我: 1.使用for循环,其中服务器打开一个套接字,ch ecks(使用for循环),如果所有IP x.x.x.x都可以通过发送“Alive”消息到达。 2.在特定套接字的客户端收到“alive”消息时,客户端会回复其IP。

这种方法行吗?你认为我能做得更好吗?

谢谢!

+0

注意 - 服务器与活一起发出它的IP和客户端知道IP服务器仅发送了之后。我不打算硬编码任何IP。谢谢! –

+0

一个可能的重复http://stackoverflow.com/questions/1158721/discovering-clients-on-a-wifi-network – GETah

+0

谢谢!但是组播UDP示例假定他们知道客户端的IP。但是,我需要网络发现而不是服务器已知的客户端IP。广播听起来像一个不错的选择? –

回答

2

我很久以前也有类似的问题,我解决它,如下所示:

  • 服务器网络到255.255.255.255
  • 所有到达的客户端上广播的UDP数据包将与UDP响应包含其IP和您希望发送的任何其他信息。

包我个人使用看起来像

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

@ GETah-是的,我会试试看。与此同时,我修改了一个多播UDP示例,其中服务器将其发送给一组随机IP。该组中的所有客户端都使用他们的IP进行响应。 –