在python中运行TCP和循环过程

时间:2018-11-30 06:46:30

标签: python tcp twisted

我正在尝试构建IoT设备,并期待构建类似这样的东西:

示意图:

  1. 作为循环运行以与硬件组件交互的python进程
  2. TCP服务器(Pub-Sub),它从其客户端接收命令并传递给(1)
  3. (1)可以与(2)进行交互以发布事件,而(2)可以与(1)进行交互以控制硬件

这是我尝试过的:

  1. 使用扭曲,我创建了一个pub sub服务
  2. 试图命令该服务发出事件
  3. Node.js上的TCP侦听器可以与Twisted TCP服务器进行交互

这是我观察到的:

Node.js服务器能够将消息正确发送到Twisted服务器。

在调用reactor.run()之后,扭曲的块会执行其他代码(示意图1),因为它开始侦听端口。

我希望这两个过程同时运行并彼此交互。

有没有不使用多线程或多进程的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

我使用asyncio

解决了这个问题

我们可以运行两个异步的循环,两个循环中都使用asyncio.sleep,以便另一个循环可以执行。

python docs也有一个带有asyncio的tcp服务器示例,因此可以解决我的要求