Python进程间通信,使用multiprocessing.connection的Listener和Client实现

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

posted on 2017-11-21 13:42  DaSunWarman  阅读(1428)  评论(0编辑  收藏  举报

导航