当前位置: 首页 > news >正文

网络编程 day04

网络编程 day04

  • 6. WebServer
    • 6.1. 网页原码分析
    • 6.2. 结合 Modbus 部分整体流程分析
    • 练习

6. WebServer

6.1. 网页原码分析

  1. 初始化服务器
  2. 循环等待连接,连接后创建线程,调用线程函数 msg_request,在线程中调用 handler_msg 函数分析请求
  3. 在 handler_msg 函数中
     1. 先查看请求协议内容,其次获取请求方法、URL、参数
     2. 判断请求方法,对 need_handler 赋值
     3. 确定请求资源路径
      1. 请求地址没有携带资源,默认返回 index.html 文件
      2. 请求的资源不存在,返回 404
      3. 调用 echo_www 函数,直接返回资源
     4. 需要手动处理,调用handle_request 函数
  4. handle_request函数主要获取post数据,调用parse_and_process函数处理正文内容

6.2. 结合 Modbus 部分整体流程分析

在这里插入图片描述

  1. 网页/postman——WebServer:网页与网页服务器之间通过HTTP协议进行通信
     通过网页上的不同操作给服务器发送不同的请求,服务器根据收到的不同请求分析实现不同的功能
     服务器实现不同功能之后向网页发送不同的响应,网页根据不同响应完成数据的变化
  2. WebServer——Modbus采集程序:属于进程间的通信,数据采集通过共享内存来通信,对硬件设备的操作通过消息队列传输
     服务器从共享内存获取寄存器数据,通过消息队列向采集程序发送控制命令
     数据采集程序每隔1秒更新共享内存,阻塞等待服务器发送控制命令
  3. Modbus采集程序——寄存器:Modbus TCP实现采集程序和寄存器的通信

练习

通过postman 模拟浏览器,实现Modbus Slave 端数据采集和设备控制

  1. postman通过http协议向服务器发送请求
  2. 服务器收到请求后分析,根据post请求的请求正文来调用不同的函数,实现与采集程序的通信,获取数据或者发送指令
  3. 采集程序每秒向共享内存发送一次采集到的数据,阻塞等待服务器发送命令

相关文章:

  • 构建企业核心竞争力深入解析某著名企业卓越运营管理框架(71页PPT)(文末有下载方式)
  • Python个人学习笔记(16):模块(os)
  • BGP路由协议【网络协议详解】--通俗易懂!
  • 1vscode开发工具搭建
  • 基于互联网地图批量获取地名的坐标,并转换坐标系
  • YOLO魔改之频率分割模块(FDM)
  • 爬虫案例-爬取某狗音乐
  • SAP 为开发者推出 Joule:AI 赋能 SAP 开发生态
  • 深入解析进程管理:创建、终止、等待与程序替换
  • Python功能完美的宝库——内置的强大“武器库”builtins
  • SpringBoot项目controller层接收对应格式请求的相关RequestMapping配置
  • 丝杆,同步轮,齿轮,链轮选型(精密版)
  • LLVM学习--外部项目
  • 第二章 Python 数据结构入门详解
  • 378_Python_python修改.xls表格,不改变表格原有样式,仅仅修改指定行、列的单元格内容
  • 数仓开发那些事(10)
  • 【亚马逊云科技】大模型选型实战(挑选和测评对比最适合业务的大模型)
  • 实测 Gemini 2.0 Flash 图像生成:多模态 AI 的创作力边界
  • 如何打造企业 DevOps 文化
  • 【初学者】数据结构与算法关系解析
  • 江苏省泰州市委常委、宣传部部长刘霞接受审查调查
  • 央行:上市公司回购增持股票自有资金比例要求从30%下调至10%
  • 山东莒县农商银行去年收入、利润下降,资本充足率等指标增长
  • 上海市政府党组会议传达学习习近平总书记重要讲话精神,部署抓好学习贯彻落实
  • 非洲中青年军官代表团访华,赴北京、长沙、韶山等地参访交流
  • 杨国荣︱《老子智慧八十一讲》及其他