A进程代码
#encoding=utf-8
__author__ = 'outofmemory.cn' from multiprocessing.connection import Listener
address = ('localhost', 6000) # family is deduced to be 'AF_INET' listener = Listener(address, authkey='secret password')
while True: conn = listener.accept() print 'connection accepted from', listener.last_accepted
data = conn.recv() print data try: result = 'haha' conn.send_bytes('get %s'%(result,)) except Exception,e: print e finally: conn.close()
listener.close() |
B进程代码
#encoding=utf-8 __author__ = 'outofmemory.cn'
from multiprocessing.connection import Client
address = ('localhost', 6000)
for x in range(0,10): conn = Client(address, authkey='secret password') conn.send('这是一个美丽的世界') print conn.recv_bytes()
conn.close() |
总结:
在python的multiprocessing.connection包中有Listener和Client类可以实现多进程之间的通信,这种通信方式根据平台的不同会自动选择socket或者named pipe的方式来实现通信。
参考:http://outofmemory.cn/code-snippet/1715/python-usage-Connection-achieve-duojincheng-between-correspond