请大家给个思路(linux下的守护进程的开发)

hwz_119 2007-05-23 01:48:32
最近一个项目,要在linux环境下写一个守护进程,该进程的主要功能是:有A,B,C三个客户端,其中需要作为A,B两个客户端之间的传话筒(即AB之间的通信皆通过我的服务转发),并不时的向C报告A的状态.
我计划用多进程的方法.主进程负责监听公开的端口,每个客户端fork一个进程进行处理.进程之间用消息队列的方式通信.
现在的问题是:
1. 是不是还要再Fork一个处理消息的进程啊?因为主进程平时就阻塞在accept(),无法去消息队列中读子进程发来的消息.
2.如果要fork一个处理消息的进程,怎样保证它只生成一个该进程,而不是每次有客户端连接时都Fo r k 一个.
谢谢
...全文
354 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzs45 2007-05-28
  • 打赏
  • 举报
回复
现在我的问题已经解决,但希望大家把你们的开发经验说一下,谢谢

===============
把你的方法和大家共享一下啊。

偶还没做过这方面的东西,学习一下备用:)
hwz_119 2007-05-24
  • 打赏
  • 举报
回复
现在的问题是,我要fork至少3个以上的进程,而处理消息队列的进程只需要一个,怎样保证只fork一个呢,因为我的主进程是处于循环下,每accept一个连接,就会生成一个处理消息队列的线程
pinelinda 2007-05-24
  • 打赏
  • 举报
回复
select , poll, epoll 应该都可以把,单进程也可以实现阿
alaiyeshi 2007-05-24
  • 打赏
  • 举报
回复
处理消息循环么?
我是搞了一个消息队列
一个进程读队列,取任务,执行任务,若无就休息
其他各个进程需要就去加任务
contain_universe 2007-05-24
  • 打赏
  • 举报
回复
实践出真知,我想你可以实现的
hwz_119 2007-05-24
  • 打赏
  • 举报
回复
现在我的问题已经解决,但希望大家把你们的开发经验说一下,谢谢
air_snake 2007-05-23
  • 打赏
  • 举报
回复
处理消息,由于是类似的操作,可以开线程的。比较方便,每次处理完后就退出线程。

如果连接比较多的化,也可以用线程池
hwz_119 2007-05-23
  • 打赏
  • 举报
回复
各位大虾,你们一般是怎么写的啊
Arrivaloffittest 2007-05-23
  • 打赏
  • 举报
回复
用信号,子进程向父发信号
hwz_119 2007-05-23
  • 打赏
  • 举报
回复
楼上的,如果在主进程的话,可主进程会阻塞在accept啊
dai_weitao 2007-05-23
  • 打赏
  • 举报
回复
在主进程中生成消息处理进程,就可以避免在每连接就fork一个

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧