将数据从python脚本传递到另一个python脚本

将数据从python脚本传递到另一个python脚本,python,Python,我试图使服务器和客户端成为一个没有套接字的类似程序,因为我不能使用internet来传递数据。 我试过用烟斗,但没用。。。 我有什么选择 服务器: def main(): try: res = "" while res != "exit": res = input() print("\n", res, "\n") except EOFError as e: print(e) if __name__ == "__main__": m

我试图使服务器和客户端成为一个没有套接字的类似程序,因为我不能使用internet来传递数据。 我试过用烟斗,但没用。。。 我有什么选择

服务器:

def main():
try:
    res = ""
    while res != "exit":
        res = input()
        print("\n", res, "\n")
except EOFError as e:
    print(e)

if __name__ == "__main__":
    main()
客户:

import subprocess
import os
import sys

def main():
    p = subprocess.Popen(['python', 'b.py'], stdin=subprocess.PIPE)
    res = ""
    while res != "exit":
        res = os.fsencode(input(">> "))
        p.stdin.write(res)

if __name__ == "__main__":
    main()

您的任务称为进程间通信或IPC。Python提供了实现这一点的方法

也许最好的方法是实际使用套接字。如果要将套接字绑定到本地主机地址(127.0.0.1),则所有通信都通过计算机上的虚拟网络适配器(环回适配器)进行。实际上没有数据通过网络传输

另一种更依赖于平台的方式是使用unix套接字(基本上是以类似文件的实体作为地址的套接字,权限决定谁可以读写它)或使用命名管道(基本上是不存储信息的虚拟文件,只是像管道一样传递信息。它们非常灵活)

内存映射区域要复杂得多,通常需要一些其他机制来同步数据的状态,但它们以极高的速度和随机访问能力奖励您。您可能不应该将其用于服务器/客户端程序


附言:如果你能添加你的代码并扩展“无法使其工作”来完整解释你的行为,StackOverflow会更好。

你有很多选择,socket(最简单的一个)不一定只有在你有一些限制、管道或共享内存(困难的一个)的情况下数据才能通过互联网

使用标准DIN时出现了什么问题?客户端和服务器在同一台主机上吗?