用Python编写P2P聊天应用程序
用Python写一个点对点聊天应用程序有可能吗?
我从一个爱好者项目的角度在考虑这个问题。两个机器能直接连接在一起,而不需要一个服务器吗?我一直在想这个问题,但从来没有看到过实际的实现,所以我觉得可能有什么特别的地方。
另外,我打算学习Twisted,如果能用上它,那就更好了!
3 个回答
0
我觉得我来这里分享观点有点晚了,因为我也是在找类似的信息时偶然发现这个地方的。我认为你可以很简单地只用套接字(sockets)来实现这个功能,不过正如上面提到的,其中一台机器需要充当服务器,另一台机器才能连接上去。
我对twisted不太熟悉,但我确实是用套接字实现了这个功能。不过,我也很好奇,如果有多个客户端连接到一个服务器,你们会怎么实现点对点的聊天通信。创建一个聊天室的应用比较简单,但我在想如何处理点对点连接时遇到了一些困难。
2
是的,只要这些电脑在同一个网络上,它们就可以建立一个服务器实例,可以进行数据的发送和接收(也就是POST和GET)。
4
没错。你可以很简单地用Twisted来实现这个。只需要让其中一个参与者充当服务器,另一个充当客户端。实际上,Twisted的教程会帮你解决大部分问题。
你可能遇到的唯一问题就是防火墙。大多数人家里的电脑都是通过SNAT路由器连接的,这样从外部直接连接到它们会比较困难。不过,你可以通过端口转发来解决这个问题。