+ -
当前位置:首页 → 问答吧 → 新手程序设计问题

新手程序设计问题

时间:2010-09-08

来源:互联网

最近开发linux环境下的一个应用程序项目。该系统A,通过以太网与子系统B和C相连。
B负责发送一些指令给A,A对指令分解后,在通知C去执行。
对于A,有一个比较常见的处理场景。
1.A收到B的指令后,将指令发给C,C收到后立即回复“已收到”。C对指令的执行结果则
通过一个周期性报文反馈给A。

目前要设计软件的结构。我的考虑是这样的。
场景1:
用一个进程Pb负责接收B的指令。每一个指令的处理设计为一个进程Pn。P1根据指令不同用
exec来创建Pn。Pn对生成新的指令后发给C,然后进程Pn等待系统C的回复后,继续监视
周期性报文中的反馈信息。等C对该指令执行成功后,Pn进程退出。

但是遇到一个问题:
处理A与系统C的通信,也要有一个进程Pc专门收来自C的报文。收到后,还要分发
给指定的Pn。因为Pn比较多,如果采用进程间通信的话,Pc要与好多的Pn打交道,
有没有什么好办法。

请推荐一些好的架构或模式。
我使用C语言开发的。多谢。

作者: utada   发布时间: 2010-09-08

1.你用线程,A收到B的控制命令后启一个线程,发送给C,就退出了。不占用资源了。

2.所有C与A的通信都用同一个端口,但是区别只在于他们发送的消息,里面有个消息头,指明自己是哪个C进程发过来的消息。

不知道这样解决了你的问题吗?

作者: wenkai169   发布时间: 2010-09-08

A启动一个线程发送给C后,如果退出了,那谁来检查C的执行结果,并汇报给B呢?

作者: utada   发布时间: 2010-09-08

回复 utada


    c把结果发给a,a起新线程分析再发给b         
与前面同里

作者: pengjianbokobe   发布时间: 2010-09-08

回复 utada


    因为都发送的A的一个端口,所以监听端口注册的函数就能处理

作者: wenkai169   发布时间: 2010-09-08

相关阅读 更多

热门下载

更多