我需要制作一款可在互联网上运行的国际象棋多人游戏。我是编程和网络的初学者,虽然我已经管理了基于GUI的国际象棋平台。 现在我需要克服通过互联网配置游戏的挑战。 为了做到这一点,我想使用第三方应用程序或软件(除了套接字编程之外的任何东西)使两台机器上运行的python程序相互通信。我希望做的是,每当有人移动时,我想通过互联网向第二个玩家发送他/她的棋子的更新坐标的字符串/列表,以便他可以看到已经移动了什么制作。任何人都可以告诉从哪里开始或阅读有关相同的内容?是否可以使用像telepathy这样的开源聊天实用程序发送更新的字符串/坐标列表?
答案 0 :(得分:3)
您想要使用socket module。 Example programs。使用套接字真的不是那么困难,基本上服务器端必须是bind()
,listen()
,然后是accept()
,客户端只需要connect()
。从那里recv()
和sendall()
可以分别用于接收和发送数据。如果您确实不想使用socket
,那么您可以使用聊天协议,例如IRC或XMPP。
答案 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。它是事件驱动的,设置起来很复杂,需要控制程序的事件循环,但效果很好。它允许客户端和服务器之间的双向通信,并具有远程对象的便利性。