2009-08-10 51 views
4

我正在考虑用Python编程我的应用程序的网络相关功能,而不是C/C++ API。网络的预期用途是在我的应用程序的两个实例之间传递文本消息,类似于尽可能通过网络传递玩家位置的游戏。需要建议 - Python中的网络连接 - 一个好主意?

虽然蟒蛇插座模块似乎充分和成熟,我想检查是否有python的模块可以是在开发的后期阶段问题的局限性。

你认为蟒蛇插座模块的内容:

  1. 它是生产高质量的软件可靠,速度不够快?
  2. 是否有任何已知的限制,如果我的应用程序可能是一个问题。需要比常规的客户机 - 服务器消息传递更复杂的网络?

由于提前,

保罗

回答

1

要回答#1,我知道,除其他事项外,在线前夕(MMO的)使用Python的变种为他们的服务器代码。

+0

* Eve使用Stackless Python。 – Kevin 2009-11-18 08:28:40

1

蟒蛇是在线前夕用途是StacklessPython(http://www.stackless.com/),并且据我所知,他们用它来实现它通过如何使用微进程和诸如此类的东西线程。但是由于python本身可以处理像网络上有4万人的MMO这样的东西,我认为它可以做任何事情。

这个不好的答案,而不是真的回答你的问题,而不是以前的答案。

Alan。

3

Python是一种成熟的语言,几乎可以做任何事情,你可以在C/C++做的(甚至直接内存访问,如果你真的想伤害自己)。

你会发现你可以在很短的时间内编写漂亮的代码,这段代码从一开始就可读,它会保持可读性(即使在返回一年之后,你仍然会知道它的功能)。

的Python的缺点是代码会有些缓慢。 “有些”如“在某些情况下可能太慢”。所以通常的做法是尽可能在Python中编写代码,因为它会使您的应用程序可维护。最终,您可能会遇到速度问题。这是考虑重写你的应用程序的一部分,在C.

的时候这种方法的主要优点是:

  1. 你已经有一个正在运行的应用。将代码从Python转换为C要比从头开始编写要简单得多。
  2. 您已经有一个正在运行的应用程序。在将Python的一小部分翻译成C之后,您只需测试一小部分,然后就可以使用应用程序的其余部分(不会更改)来执行此操作。
  3. 您不需要预先支付价格。如果Python对你来说足够快,你永远不需要做可选的优化。
  4. Python比C更强大。Python的每一行都可以做到100或甚至1000行C。
9

检出Twisted,一个用于网络的Python引擎。 * Eve使用Stackless Python。内置对TCP,UDP,SSL/TLS,多播,Unix套接字,大量协议(包括HTTP,NNTP,IMAP,SSH,IRC,FTP等)的支持