首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Linux停的数据传输

2013-07-09 
Linux下的数据传输Linux不熟,问个问题:同一台机器上,现在有一个应用程序A,另外还有10个同时运行的应用程序

Linux下的数据传输
Linux不熟,问个问题:

同一台机器上,现在有一个应用程序A,另外还有10个同时运行的应用程序B1-B10用来单独处理某些事件(几个小时),在这个过程中,这个10个程序B1-B10需要不停的把log传给A,A也需要不停地确认这10个程序在工作,该用什么样的通信方式?

网上看了下,大部分再说pipe, socket, 共享内存等?希望大家说说,那种方式能够满足我的要求,性能又比较好! Linux 数据传输
[解决办法]
共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的:
·进程之间松耦合
·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。
·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。
·方便在线开关服务,只需删除或创建该临时文本文件即可。
·方便实现分布式和负载均衡。
·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满)
·……

[解决办法]
pipe是无名管道的通信,只能用于有亲缘关系进程之间的通信(也就是父子进程或兄弟进程之间)。你可以使用有名管道fifo进行通信,它可以使两个互不相关的进程进行通信。
[解决办法]
共享内存吧,既利于频繁读写的情况,也能有效防止数据丢失
[解决办法]
强烈建议帖主阅读《Unix编程艺术》一书。

热点排行