【问题标题】:communicating with another python program over the internet [closed]通过互联网与另一个python程序通信[关闭]
【发布时间】:2013-11-07 00:22:58
【问题描述】:

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

【问题讨论】:

  • 不太适合 SO 问题 - 它太宽泛而无法回答,或者失败需要征求意见。你最好的选择是找到一个现有的开源多人国际象棋程序(或者实际上 - 任何开源应用程序。信使应用程序可能不是一个坏主意)并看看它是如何做到的......然后看看其他人,并使用这些作为想法基础来查看技术/相关信息以加深您的理解
  • 听着,你不能让两台电脑在没有一台服务器的情况下通过互联网进行通信。尤其是对于像游戏这样的复杂通信。
  • @JonClements:SO 问题到底是什么? (对不起,我是菜鸟)
  • @Srij SO = Stackoverflow 和 Question = 你刚才问的 :)

标签: python python-2.7


【解决方案1】:

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

【讨论】:

  • 套接字是合适的,但从 OP 看来,他想要anything but socket programming
  • @hexparrot 啊,我只是略过这个问题。
【解决方案2】:

聊天/IM 解决方案似乎是个好主意。

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      相关资源
      最近更新 更多