【发布时间】:2014-11-18 10:00:19
【问题描述】:
Python 程序做前端工作,C 程序做后端工作。 它们中的每一个都是一个单独的过程。
Python 进程充当主进程,向 C 进程发送信号和事件。
C 进程生成统计信息、计数器和信息,这些信息将发送回 python 进程,然后将其显示给用户。
它们之间会有双工通信
在搜索了不同的技术之后,我发现以下是我可以做到的一些方法:
1. Create a UDP/TCP socket between the 2 processes.
2. Use a memory mapped file.
传递的数据应该是什么格式?
1. Should I use variable size structures?
2. Should I use Tag Length Value Format?
3. Should I use XML?
我可以有一个两个进程都能理解的通用文件吗?
例如,具有要传递的数据格式的通用头文件。
不同种类的数据报文是
1. Signal messages from python to c.
2. Signal messages from c to python.
3. Heartbeat messages from python to c.
4. Stats messages from c to python.
5. Log messages from c to python.
6. Progress messages from c to python.
7. Update messages from python to c
对于C而言,每条消息都是C结构。
【问题讨论】:
-
请提供您的环境的详细信息,例如允许的延迟(实时还是慢速?),典型的消息大小(几个字节或 MB 或 TB?),所需的吞吐量(偶尔的消息或 1Gtps?),这些进程是如何产生的(一个是另一个的孩子,还是完全独立的? ),您是否控制了这两个进程的源代码?什么是可靠性要求(如果一个进程很慢,另一个进程应该阻止还是丢弃消息?)