基本上,我正在尝试实现的是一个程序,它允许用户通过网络在聊天室中相互连接。我目前正在努力编写代码,以便用户可以在不知道其他用户正在使用的计算机的IP地址或服务器的IP地址的情况下相互连接。
有谁知道一种方法,我可以简单地让所有用户扫描我的网络的IP范围,以便找到任何活动的“房间”,然后给用户一个连接到它的机会?
此外,希望不需要中央服务器来运行它,而是每个用户都将简单地连接到所有其他用户,本质上同时是服务器和客户端。
发布于 2010-06-08 10:35:49
我可以给你两个建议。首先,每个人都会收到发往您网络的广播地址的UDP数据包。其次,存在一种协议,用于提供某些服务的程序在本地网络上找到彼此。该协议称为mDNS、ZeroConf或Bonjour。
使用广播UDP可能是更快的路由。但如果我是你,我会学习如何使用ZeroConf。它在IPv6下得到了很好的支持,并且已经被一些有趣的程序所使用,比如SubEthaEdit和Gobby。
这是一个指向nice tutorial for implementing something that speaks ZeroConf in Python的链接。
另一个建议..。如果您想手动使用自己的广播/多播UDP代码,并且可以确保您所在的所有系统都运行的是比2003更高的Linux,并且所有的Windows系统都是XP或更好的系统,那么您可以使用IPv6。IPv6链路本地(考虑相同的局域网)所有主机的组播地址是ff02::1。这真的很简单,而且它可以到达同一局域网上的所有其他系统。这比必须用IPv4找出您的网络的广播地址要好得多。
https://stackoverflow.com/questions/2994430
复制相似问题