网络编程 day04
网络编程 day04
- 6. WebServer
- 6.1. 网页原码分析
- 6.2. 结合 Modbus 部分整体流程分析
- 练习
6. WebServer
6.1. 网页原码分析
- 初始化服务器
- 循环等待连接,连接后创建线程,调用线程函数 msg_request,在线程中调用 handler_msg 函数分析请求
- 在 handler_msg 函数中
1. 先查看请求协议内容,其次获取请求方法、URL、参数
2. 判断请求方法,对 need_handler 赋值
3. 确定请求资源路径
1. 请求地址没有携带资源,默认返回 index.html 文件
2. 请求的资源不存在,返回 404
3. 调用 echo_www 函数,直接返回资源
4. 需要手动处理,调用handle_request 函数 - handle_request函数主要获取post数据,调用parse_and_process函数处理正文内容
6.2. 结合 Modbus 部分整体流程分析
- 网页/postman——WebServer:网页与网页服务器之间通过HTTP协议进行通信
通过网页上的不同操作给服务器发送不同的请求,服务器根据收到的不同请求分析实现不同的功能
服务器实现不同功能之后向网页发送不同的响应,网页根据不同响应完成数据的变化 - WebServer——Modbus采集程序:属于进程间的通信,数据采集通过共享内存来通信,对硬件设备的操作通过消息队列传输
服务器从共享内存获取寄存器数据,通过消息队列向采集程序发送控制命令
数据采集程序每隔1秒更新共享内存,阻塞等待服务器发送控制命令 - Modbus采集程序——寄存器:Modbus TCP实现采集程序和寄存器的通信
练习
通过postman 模拟浏览器,实现Modbus Slave 端数据采集和设备控制
- postman通过http协议向服务器发送请求
- 服务器收到请求后分析,根据post请求的请求正文来调用不同的函数,实现与采集程序的通信,获取数据或者发送指令
- 采集程序每秒向共享内存发送一次采集到的数据,阻塞等待服务器发送命令