有很多关于如何找到这些东西的例子:

1)在同一程序中的不同进程之间进行通信.

2)通过网络在客户端/服务器之间进行通信

但是,这个问题在我看过的任何地方都没有很好的例子:

>从python程序A向程序B发送字符串的规范方法是什么,它阻止并处理该字符串,然后在循环中等待另一个字符串?

我觉得我已经多次接近答案,但从未设法创造一个有效的例子.

其他隐含要求:

>实际上有两个不同的程序:该示例需要实际上有两个不同的程序(即两个文件progA.py,progB.py可以在同一台机器上的两个屏幕中从命令行单独运行),不使用任何类型的分叉或multiprocess来创建客户端和服务器.

>请建议一种方法,允许发送长度合理的可变长度分隔字符串,而不是必须得到正确的数据大小的确切字节数. (后者在实现中更容易出错).

>理想情况下,不使用localhost互联网连接即可

例如;读者使用时:

pipein = open(pipe_name,'r')
while program.KeepRunning:
action = pipein.readline()[:-1]
program.processLine(line)
time.sleep(1)

而作者使用:

command = "enable"
pipeout = os.open(pipe_name,os.O_WRONLY)
os.write(pipeout,command)
os.write(pipeout,"\n")

有趣的是,在program.processLine函数中添加if(action ==’enable’):longFunction()会导致longFunction中的部分代码被执行,然后才能永久地读出空行.

另一方面,利用更现代的低级别子流程模块的所有示例仅涉及多线程应用程序,而不涉及多个应用程序.其他实现涉及套接字和网络.

虽然我尝试使用套接字,但这会导致通用的“出错”类型错误,导致许多可能的原因错误111:“连接拒绝”显示“某些时间”.作为在接收某些命令时执行的python代码的一部分,实际修改网络配置(例如,它使用各种参数调用ip,tc和iptables等命令)利用到localhost的网络连接是可能应该避免的,导致困难调试和一般讨厌的问题.除了第二个程序在同一台机器上运行时不必要的部分,因此任何程序间通信都不需要使用网络接口.