基于实习生的Python聊天p2p系统

2024-05-14 09:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想建立一个点对点聊天引擎运行在互联网上。到目前为止,我的代码可以在本地网络上工作,但不能再进一步。这是因为使用pythonsockets监听套接字并不能使它们在局域网外可用。在

IP是可接受的共享知识,即其他人需要知道我的IP地址(以及我正在监听的端口)才能连接到我。在

如何告诉路由器向外界打开一个插座?想必这是可以做到的,因为p2p软件,如BitTorrent必须做到这一点,以便在客户端之间进行通信。在


Tags: 端口代码引擎ip软件路由器互联网p2p
1条回答
网友
1楼 · 发布于 2024-05-14 09:33:48

正如你所提到的,你必须在路由器上打开一个特定的端口并使用该端口进行通信。由于有许多路由器制造商,每个制造商都有各种型号,我建议您查看手册,了解您想要使用的路由器。 对于代码,你可以检查你的代码是否在局域网上工作,然后看看路由器是否让你列出一些端口的白名单。你可以在网上找到许多简单的例子。 这是我以前玩过的一段代码: http://www.mediafire.com/download/vef4q4prkr7be2e/python.socket.zip

如果你不想让用户搞砸端口和路由器设置之类的事情,我可以想到的第一个选择是:

您设置了一个restapi,在一个接口中可以检索提供的消息(chatRoomName,FromTimestamp,ToTimestamp[,可选chatRoomPassWord]),但这与套接字无关,您必须使用简单的HTTP请求(urllib/urlib2)。当然,可能存在一些解决方法,比如总是白名单的端口(比如浏览器为80,SSH为22),但是您必须搜索这样的异常。 请注意,最多1024个端口需要使用特殊权限(admin/sudo)。在

在传统实现中,另一方(客户机)必须知道您的(ip,端口)duo才能连接到you(服务器)。在

相关问题 更多 >

    热门问题