外观
08.网络通信框架的完善
约 414 字大约 1 分钟
嵌入式NETLinux单片机
2023-08-17
18、网络通信框架的完善
① 问题
如何扩展之前开发的通信框架,使其支持UDP通信,而成为一个完善的网络通信框架?
② UDP通信扩展

③ UDP通信实体概要设计
每个UDP Point地位对等,可通过ip地址和port号进行通信
UDP Point数据收发单位为:Message或 Byte
在接口设计上,与TcpClient保持一致(框架接口致性)
目标:封装原生socket细节,关注UDP通信逻辑

④ UDP通信实体接口设计

⑤ 关键代码实现 – 初始化

⑥ 关键代码实现 – 消息接收
- 由于UDP是以数据报方式进行通信(非数据流方式,报文间有明显边界)
- 因此,不能直接通过MParser_ReadFd(…)解析出消息
- 必须先将报文完整接收到内存中,再进行从内存中解析出消息
- 即通过MParser_ReadMem(...)间接完成消息解析
⑦ 如何获取缓冲区中的报文长度?

⑧ 关键代码实现 – 消息接收

⑨ 关键代码实现 – 通信选项设置

⑩ 编程实验:UDP通信端设计与实现

