首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的网络通信编程

python中的网络通信编程
EN

Stack Overflow用户
提问于 2010-06-08 10:29:32
回答 1查看 1.1K关注 0票数 2

基本上,我正在尝试实现的是一个程序,它允许用户通过网络在聊天室中相互连接。我目前正在努力编写代码,以便用户可以在不知道其他用户正在使用的计算机的IP地址或服务器的IP地址的情况下相互连接。

有谁知道一种方法,我可以简单地让所有用户扫描我的网络的IP范围,以便找到任何活动的“房间”,然后给用户一个连接到它的机会?

此外,希望不需要中央服务器来运行它,而是每个用户都将简单地连接到所有其他用户,本质上同时是服务器和客户端。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-08 10:35:49

我可以给你两个建议。首先,每个人都会收到发往您网络的广播地址的UDP数据包。其次,存在一种协议,用于提供某些服务的程序在本地网络上找到彼此。该协议称为mDNS、ZeroConf或Bonjour。

使用广播UDP可能是更快的路由。但如果我是你,我会学习如何使用ZeroConf。它在IPv6下得到了很好的支持,并且已经被一些有趣的程序所使用,比如SubEthaEditGobby

这是一个指向nice tutorial for implementing something that speaks ZeroConf in Python的链接。

另一个建议..。如果您想手动使用自己的广播/多播UDP代码,并且可以确保您所在的所有系统都运行的是比2003更高的Linux,并且所有的Windows系统都是XP或更好的系统,那么您可以使用IPv6。IPv6链路本地(考虑相同的局域网)所有主机的组播地址是ff02::1。这真的很简单,而且它可以到达同一局域网上的所有其他系统。这比必须用IPv4找出您的网络的广播地址要好得多。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2994430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档