Linux上的python中的程序间通信
|
有很多关于如何找到这些东西的例子: 1)在同一程序中的不同进程之间进行通信. 2)通过网络在客户端/服务器之间进行通信 但是,这个问题在我看过的任何地方都没有很好的例子: >从python程序A向程序B发送字符串的规范方法是什么,它阻止并处理该字符串,然后在循环中等待另一个字符串? 我觉得我已经多次接近答案,但从未设法创造一个有效的例子. 其他隐含要求: >实际上有两个不同的程序:该示例需要实际上有两个不同的程序(即两个文件progA.py,progB.py可以在同一台机器上的两个屏幕中从命令行单独运行),不使用任何类型的分叉或multiprocess来创建客户端和服务器. 例如;读者使用时:
而作者使用:
正如在http://www.python-course.eu/pipes.php所建议的那样 有趣的是,在program.processLine函数中添加if(action ==’enable’):longFunction()会导致longFunction中的部分代码被执行,然后才能永久地读出空行. 另一方面,利用更现代的低级别子流程模块的所有示例仅涉及多线程应用程序,而不涉及多个应用程序.其他实现涉及套接字和网络. 虽然我尝试使用套接字,但这会导致通用的“出错”类型错误,导致许多可能的原因错误111:“连接拒绝”显示“某些时间”.作为在接收某些命令时执行的python代码的一部分,实际修改网络配置(例如,它使用各种参数调用ip,tc和iptables等命令)利用到localhost的网络连接是可能应该避免的,导致困难调试和一般讨厌的问题.除了第二个程序在同一台机器上运行时不必要的部分,因此任何程序间通信都不需要使用网络接口. 最佳答案 这是预期的行为.请查看this answer以了解类似问题和FIFO行为概述.与您的问题相关的部分是:
file.readline()docs说”(空字符串)表示已达到EOF:
而已.在每次尝试读取的无限循环中,您将获得一个空字符串,表示没有连接的编写器. 没有什么可以阻止您使用命名管道来解决您的任务.最简单的方法就是在没有作家的情况下睡一段时间.这是工作示例:
笔记: >使用os.open()是没有意义的,它是低级函数.您可以使用open()与命名管道进行交互. (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – HeapCreate,Linux中的HeapAlloc,Linux的私有分配器
- linux – 从SSH会话断开连接是否会导致程序崩溃?
- regex – sed只替换最后一次匹配 – 需要匹配所有匹配
- linux – sysfs_create_file()和sysfs_create_group()之间有
- embedded-linux – 如何在bitbake的配方中将文件夹或文件添
- linux – 将runit与monit结合使用有什么意义?
- linux – 文件夹中最新文件的符号链接
- linux – 用于MongoDB分片的mongos和配置服务器的Init脚本
- linux – 如何防止内核将数据包传递到网络层?
- -fstack-protector,-fstack-protector-all和-fmudflap
