我正在开发一个在LAN上的几台不同计算机上运行的联网应用程序.其中一个核心需求是应用程序维护过去与之通信的LAN上的对等列表,以便它可以恢复以前的会话.天真的解决方案是只记住IP并将其存储在一个表中,但是当一个对等体的IP发生变化时会发生什么?
相反,我认为我会存储对等体的主机名,所以即使IP更改,它们仍然可以通过其主机名访问.(我知道主机名也可以改变,但这已经足够了).
所以我的问题是,在具有混合Windows/Mac/Linux客户端的LAN上使主机名解析工作到底需要什么?
如果不使用中央权限,实现此目的的唯一可靠方法是使用zerconfiguration名称解析.这意味着如果没有多播路由器,您将只能动态解析与解析主机相同的子网上的对等体.您可以使用像bonjour for mac,netbios或ssdp for windows或avahi for linux这样的东西,但你不能认为这些是启用的.我可能会忽略一些更流行的协议来执行此功能,但我个人会为您的应用程序提供一个快速的udp广播名称解析协议.看看这些更多的想法:
http://en.wikipedia.org/wiki/Zero_configuration_networking#Name_resolution
http://en.wikipedia.org/wiki/Broadcast_address#IP_networking
我会选择一个特定的udp端口来监听(比方说12000)然后当你准备解析主机时,在端口12000上发送一个"hello"udp数据包发送到255.255.255.255并运行你网络上的所有其他主机您的应用应回复包含其主机名的数据包,可能还有其他信息.
| 归档时间: |
|
| 查看次数: |
11883 次 |
| 最近记录: |