我正在测试与子进程的通信。我必须启动一个服务器,定期发送数据。最终目标是获取气象数据的进程和绘图服务器。采样率是数量级或分钟....我编写了这两个代码片段以了解python中ipc的基础知识,但我什至无法使它们工作。同步性不是问题。
主要流程
import sys, time
from subprocess import Popen, PIPE
print 'starting'
proc = Popen (['python.exe',
'C:\Documents and Settings\Administrator\Desktop\sub.py'],
stdin = PIPE, stdout = PIPE)
print 'launched'
w = 0
while True:
w += 1
time.sleep (2)
print 'writing', w
proc.stdin.write (repr(w))
proc.stdin.flush()
print proc.stdout.read()
子流程:
import sys, time
print 'reading'
v = 0
while True:
v = sys.stdin.read()
sys.stdout.write('ACK')
sys.stdout.flush ()
time.sleep (4)
主进程正在阻塞,显然子进程没有读取 - 发送 ACK。我哪里错了???谢谢