新手程序设计问题
时间: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语言开发的。多谢。
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进程发过来的消息。
不知道这样解决了你的问题吗?
2.所有C与A的通信都用同一个端口,但是区别只在于他们发送的消息,里面有个消息头,指明自己是哪个C进程发过来的消息。
不知道这样解决了你的问题吗?
作者: wenkai169 发布时间: 2010-09-08
A启动一个线程发送给C后,如果退出了,那谁来检查C的执行结果,并汇报给B呢?
作者: utada 发布时间: 2010-09-08
回复 utada
c把结果发给a,a起新线程分析再发给b
与前面同里
c把结果发给a,a起新线程分析再发给b
与前面同里
作者: pengjianbokobe 发布时间: 2010-09-08
回复 utada
因为都发送的A的一个端口,所以监听端口注册的函数就能处理
因为都发送的A的一个端口,所以监听端口注册的函数就能处理
作者: wenkai169 发布时间: 2010-09-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28