在不同计算机上的python脚本之间传递变量。

在不同计算机上的python脚本之间传递变量。,python,networking,network-programming,Python,Networking,Network Programming,我是编程新手。我想知道是否有办法将在一台计算机上用python创建的变量发送到在同一网络上运行另一个python脚本的另一台计算机。基本上说,当变量等于5时,我希望另一个脚本打印5。一个简单的方法是通过web服务。基本上,您可以让ComputerB在端口(如80、81、8100等)上监听,并让您的脚本在ComputerA上通过http与之对话 您可以使用简单的框架(如web服务器或托管在web服务器中)来调用设置此变量的Python代码。尝试使用套接字pickle,pickle将变量转换为字符串

我是编程新手。我想知道是否有办法将在一台计算机上用python创建的变量发送到在同一网络上运行另一个python脚本的另一台计算机。基本上说,当变量等于5时,我希望另一个脚本打印5。一个简单的方法是通过web服务。基本上,您可以让ComputerB在端口(如80、81、8100等)上监听,并让您的脚本在ComputerA上通过http与之对话


您可以使用简单的框架(如web服务器或托管在web服务器中)来调用设置此变量的Python代码。

尝试使用套接字pickle,pickle将变量转换为字符串,然后您可以在其他服务器上恢复该对象

仅仅是主函数,这段代码不能单独工作

socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((host, port))
conn, addr = sock.accept()
conn.sendall(pickle.dumps({'somedictionary':data}))
使用恢复数据

dict=pickle.loads(bufferreceived)

这实际上取决于您的技术要求、程序架构等,但基本上我可以建议您使用某种消息队列服务在应用程序之间进行通信。例如RabbitMQ。

试试看

ØMQ(也称为ZeroMQ、0MQ或zmq)看起来像一个可嵌入的 网络库,但其作用类似于并发框架。它给你 跨各种传输方式传输原子消息的套接字,如 进程内、进程间、TCP和多播。你可以连接插座 N对N模式,如扇出、发布订阅、任务分配和 请求答复


这并不意味着它不是为了网络。。不要用pickle接受来自不受信任主机的数据,因为它可以是任何东西。。。如果您知道从哪里接收数据,这不是问题,而且。。。一些正在学习基本知识的人可能也会写一些真正不安全的东西……这个答案的可信度在哪里?使用此代码的危险警告在哪里?我希望提出问题的人在阅读了这个答案后去阅读pickle文档,看到了自己的警告,但是不重复这个警告就给出这个答案是不负责任的。除此之外,“我想通过网络发送数字5”是让自己暴露在这些问题面前的一个不好的理由。确实,您可能希望通过网络发送pickle,但前提是您遇到比这更困难的问题。对于如此简单的事情,冒险是不值得的。