0

我正在尝试编写一个 Python 库来实现某个聊天协议的客户端。

连接到服务器后,
我启动主循环,从服务器读取并处理接收到的命令,在这里我需要调用回调函数(如on_messageoron file_received等​​)。

我应该如何实施呢?
是否应该为每个回调函数启动一个新线程?因为也许一些回调需要一些时间才能返回,我会超时。
另外,
如果我从服务器读取的主循环在一个线程中,我可以从另一个线程写入套接字(向服务器发送消息)吗?
还是有更好的方法?谢谢。

4

3 回答 3

6

对于执行此操作的 python 应用程序,我不会使用线程。我会使用像Twisted这样的框架。

文档有示例;这是一个聊天示例

于 2009-11-03T23:17:16.557 回答
2

我会使用 select 模块,或者交替使用,但是 select 更便携,而且在我看来更 Pythonic。

于 2009-11-04T06:00:39.247 回答
1

线程在这里只是一个不必要的复杂性,如果您不熟悉如何正确使用它们,则会导致难以理解的错误。然而, asyncoreasynchat是通向同一目标的简单途径。

于 2009-11-04T10:33:06.627 回答