Python:使用传入消息中断发件人

时间:2013-05-06 06:09:47

标签: python sockets python-2.7 event-handling

我正在使用套接字,异步事件驱动编程。我想收到一条消息,一旦收到回复,就发送另一条消息。但我可能会做一些除了听力之外的事情。也就是说,当socket.recv()实际收到消息时,我想要中断。

问题1:如何让第3层中断第4层?即如何处理非null返回socket.recv()的事件而不实际专用“程序时间”实际等待特定时间来收听传入消息?

2 个答案:

答案 0 :(得分:0)

在异步编程中,您不会中断由消息触发的操作。所有操作都应该以简短快速的方式完成,这样您就可以每秒处理大量消息。这样每次操作都是原子的,你不会那么容易受到任何竞争条件的影响。 如果您需要并行执行更复杂的处理,可以将这些问题交给辅助线程。像扭曲的图书馆为这些用例做好准备。

答案 1 :(得分:0)

您需要直接使用套接字吗?否则我会建议查看python的优秀Twisted库。它为您处理所有异步工作,因此您可以专注于编写处理程序和代码所需的其他逻辑。扭曲相对容易上手。请查看http://twistedmatrix.com/documents/current/core/howto/index.html处的一些示例。