通过互联网与另一个python程序通信

时间:2013-11-06 15:03:02

标签: python python-2.7

我需要制作一款可在互联网上运行的国际象棋多人游戏。我是编程和网络的初学者,虽然我已经管理了基于GUI的国际象棋平台。 现在我需要克服通过互联网配置游戏的挑战。 为了做到这一点,我想使用第三方应用程序或软件(除了套接字编程之外的任何东西)使两台机器上运行的python程序相互通信。我希望做的是,每当有人移动时,我想通过互联网向第二个玩家发送他/她的棋子的更新坐标的字符串/列表,以便他可以看到已经移动了什么制作。任何人都可以告诉从哪里开始或阅读有关相同的内容?是否可以使用像telepathy这样的开源聊天实用程序发送更新的字符串/坐标列表?

3 个答案:

答案 0 :(得分:3)

您想要使用socket moduleExample programs。使用套接字真的不是那么困难,基本上服务器端必须是bind()listen(),然后是accept(),客户端只需要connect()。从那里recv()sendall()可以分别用于接收和发送数据。如果您确实不想使用socket,那么您可以使用聊天协议,例如IRCXMPP

答案 1 :(得分:0)

聊天/即时通讯解决方案似乎是一个好主意。

对于聊天/即时消息,您可以使用Jabber / XMPP。您可能需要设置自己的服务器或找一个为公众托管一个服务器的人。设置Jabber服务器非常简单,例如,您可以使用OpenFire。要连接到Jabber,您可以使用python xmpp库来发送和接收消息。这可能是最简单的方法,因为Jabber库往往非常容易使用。 (我已经在Java和.NET中完成了它,而不是python)。

另一种方法是使用类似 twitter 的消息。有关支持直接消息传递的库(这是您需要的)的建议,请参阅Python Twitter library: which one?。这样做的好处是,一旦你学习了twitter API,你就不需要自己的服务器了。

答案 2 :(得分:0)

这是一个广泛的,自以为是的问题,但我在Python中的首选网络通信协议是Twisted的Perspective Broker。它是事件驱动的,设置起来很复杂,需要控制程序的事件循环,但效果很好。它允许客户端和服务器之间的双向通信,并具有远程对象的便利性。