在不同计算机上的进程之间进行通信
Posted
技术标签:
【中文标题】在不同计算机上的进程之间进行通信【英文标题】:Communicating between processes on different computers 【发布时间】:2016-06-12 07:41:40 【问题描述】:我想在进程之间进行通信(一个进程做某事,将结果发送到另一个用它做某事的进程)。 所以我使用了这段代码:
服务器:
from multiprocessing.connection import Listener
address = ('localhost', 6000) # family is deduced to be 'AF_INET'
listener = Listener(address, authkey='secret password')
conn = listener.accept()
print 'connection accepted from', listener.last_accepted
while True:
msg = conn.recv()
# do something with msg
if msg == 'close':
conn.close()
break
listener.close()
客户:
from multiprocessing.connection import Client
address = ('localhost', 6000)
conn = Client(address, authkey='secret password')
conn.send('close')
conn.close()
(来源:interprocess communication in python)
它就像一个魅力。但我想从另一台计算机上运行这两个程序。在比较。 A 我有这两个程序。我通过 Wifi Lan(使用 ssh 连接)从 Comp B 连接到 Comp A 并运行这 2 个程序(这意味着它们在 Comp A 上运行),但它们没有相互连接。我尝试使用 wifi 局域网地址(192.168.xx)而不是“localhost”,但它也没有工作。我必须使用什么参数而不是“localhost”,以便这两个程序可以连接。或者什么是最简单的方法来做到这一点。 干杯!
【问题讨论】:
【参考方案1】:转到命令提示符并在另一台计算机上键入ipconfig
。您需要使用 IPv4 地址。您还需要确保端口已打开并启用了 ssh。将“localhost”替换为 IPv4 地址。
【讨论】:
以上是关于在不同计算机上的进程之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章
创建一个仅限本地的端口以在同一台计算机上的进程之间进行通信?