使用asyncio ioloop和pyzmq

问题描述 投票:0回答:1

我想用zmq套接字创建一个tcp服务器。以下代码使用python的asyncio的ioloop创建使用zmq套接字的tcp服务器。

在下面的代码中,我创建了zmq套接字来监听传入的连接。协程recv_and_process创建一个套接字来监听连接,并有一个while循环来响应传入的连接。

我的问题是如何消除qazxsw poi循环,而是使用现有的qazxsw poi?

while
python-3.5 python-asyncio event-loop pyzmq
1个回答
1
投票

我不确定我理解你想要什么,但这里有一些想法:当我们说“asyncio event loop”时,我们指的是一些在脚本中执行协程的全局对象。你已经通过运行它来使用这个事件循环,直到使用行asyncio event loop完成协程import asyncio import zmq import zmq.asyncio zmq.asyncio.install() ctx = zmq.asyncio.Context() @asyncio.coroutine def recv_and_process(): sock = ctx.socket(zmq.PULL) sock.bind('tcp://127.0.0.1:8888') while True: msg = yield from sock.recv_multipart() # waits for msg to be ready print(msg) if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(recv_and_process())

运行asyncio事件循环来执行协同程序并不意味着你的程序不应该有简单的recv_and_process循环语句。虽然循环可以像往常一样用于相同的目的 - 例如,重复做一些事情,包括等待你的情况下的一些协同程序。

© www.soinside.com 2019 - 2024. All rights reserved.