在一家安防企业工作两年,前期是负责pc上的中心软件,作为一个终端的管理平台,包括了数据库管理,视音频通话,
网络通讯,矢量地图几个模块。之后转为嵌入式开发,主要是arm9处理器上的linux上层应用,以tcp作为可视对话连接基础,
辅以回码机制,并采用udp广播一对多通讯。以触摸,按键作为交互方式,串口收发作为报警,模拟对讲,家居控制等功能的实现方式。
进程架构方面,程序主进程被创建之后,开启和监听端口,每每有请求的连接建立,都fork一个子进程来负责处理,主进程可以继续等待下一个客户端请求。
对于每个被创建出来的子进程,都可以独立地接收和发送数据,执行服务器逻辑,完成操作关闭连接之后,子进程被销毁,资源被操作系统回收。
使用具名管道(慢),和共享内存(有名称,多进程,不方便同步,不能跨网络)以及消息队列(容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据)来实现同步。
通过信号来处理触摸跟按键,以及串口数据