关于Python进程间通信的问题

关于Python进程间通信的问题

在Python中如何实现进程间的通信?
例如现在有一个receiver.py来负责从标准输入读入信息,然后显示的屏幕上。
然后有一个transimitter.py来负责启动receiver.py并且向其发送信息。
在网上查到用subprocess这个模块,不过当调用subproc.stdin.write('info')的时候会抛出IOError 32 Broken PIPE错误,不知道为何。下面是代码:

receiver.py:

[Copy to clipboard] [ - ]
CODE:
import sys

info = sys.stdin.readline()

print info

transimitter.py:

[Copy to clipboard] [ - ]
CODE:
import subprocess
import time

subproc = subprocess.Popen('receiver.py',stdin=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
time.sleep(0.5)
subproc.stdin.write('info')
print 'end....'

谁能帮帮我!!!
你能确保 subproc.stdin.write('info') 时,receiver.py还在么?
不晓得啊,不知道这个原理是什么。
是不是subproc.stdin.writer('info')执行完毕之后,主程序就退出了啊?
何不用socket通信呢?以后分布式也方便多了.
import subprocess
import time

subproc = subprocess.Popen(['C:\\Python24\\python.exe','receiver.py'],stdin=subprocess.PIPE,shell=True)
time.sleep(0.5)
subproc.stdin.write('info\n')
print 'end....'
--------------------------------------------------
在Windows下,这样就可以了


QUOTE:
原帖由 xichen 于 2007-8-15 16:24 发表
何不用socket通信呢?以后分布式也方便多了.

主要考虑到后台某些程序设计的时候可能没有Socket功能
哎呀,在Linux低下可以使用输入重定向来实现,真是笨啊!
不过在Windows下面就不知道了。