网络编程4

news2025/4/22 11:31:15
  • day4
    • 一、Modbus
      • 1.分类
        • (1).Modbus RTU: 运行在串口上的协议,采用二进制表现形式以及紧凑型数据结构,通信效率高,应用广泛。
        • (2).Modbus ASCII: 运行在串口上的协议,采用ASCII码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率要远远低于Modbus RTU协议,一般只有在通信数据量较小的情况下才考虑使用Modbus ASCII通信协议。
        • (3).Modbus TCP: 运行在以太网上的协议。
      • 2.优势
        • 免费、简单、容易使用
      • 3.Modbus TCP特点
        • (1).采用主从问答式通信
        • (2).Modbus TCP是应用层协议,基于传输层的TCP协议实现
        • (3).Modbus TCP端口号是502
    • 二、Modbus TCP协议格式
      • 1.组成
        • ModbusTCP包含三部分:报文头、功能码、数据
            • Modbus TCP/IP协议最大数据帧长度为260字节,报文头7字节,功能码1字节,数据最大252字节。
      • 2.报文头
          • 事务处理标识符:没有限制,主机发送什么,从机回复什么 协议标识符:00 00 (十六进制)占2字节,表示Modbus TCP协议 长度:存放的后面字节长度,用4位十六进制表示(2字节) 单元标识符:从机ID
      • 3.寄存器
      • 4.功能码
          • 寄存器PLC地址和寄存器的对应关系: 线圈: 00001-09999 离散量输入:10001-19999 输入寄存器:30001-39999 保持寄存器:40001-49999
        • 具体协议
          • http://www.360doc.com/content/20/0804/12/43769266_928452485.shtml
        • 总结模板
    • 三、Modbus RTU
      • 1.与Modbus TCP的区别
        • 与modbus TCP不同的是RTU没有报文头MBAP字段,但是在尾部增加了两个CRC检验字节(CRC16),因为网络协议中自带校验,所以在TCP协议中不需要使用CRC校验码。
      • 2.Modbus RTU特点
        • Modbus RTU是主从问答协议,由主机发起,一问一答
          • 设置串口参数时要求:
          • 波特率为9600
          • 8位数据位
          • 1位停止位
          • 无流控
      • 3.Modbus RTU协议格式
        • Modbus RTU数据帧包含地址码、功能码、数据、校验码四部分
        • 地址码:1个字节的从机地址码
        • 功能码:与Modbus TCP相同
        • 数据区:数据区包含这么几部分:起始地址、数量、数据
        • CRC校验:两个字节,校验的数据范围为:地址码+功能码+数据区,校验码的产生可以通过函数自动生成。
    • 四、Modbus库
      • 1.路径
        • 要想编译方便,可以将头文件和库文件放到系统路径下。
        • 头文件默认搜索路径:/usr/include 、/usr/local/include
        • 库文件默认搜索路径:/lib、/usr/lib
      • 2.函数接口
      • 3.编程流程
        • (1).创建实例 modbus_new_tcp
        • (2).设置从机ID modbus_set_slave
        • (3).和从机进行连接 modbus_connect
        • (4).寄存器进行操作  功能码对应函数
        • (5).关闭套接字 modbus_close
        • (6).释放实例  modbus_free
    • 五、HTTP协议
      • 1.Http简介
        • (1).HTTP是应用层协议
        • (2).HTTP是一个基于TCP通信协议传输来传递数据(HTML 文件, 图片文件, 查询结果等)
        • (3).HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL主动向HTTP服务端即WEB服务器发送所有请求,Web服务器根据接收到的请求后,向客户端发送响应信息。
        • (4).HTTP默认端口号为80,但是你也可以改为8080或者其他端口
      • 2.Http特点
        • (1).HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。
        • (2).HTTP是媒体独立的:任何类型的数据都可以通过HTTP发送。
        • (3).HTTP是无状态:对于事务处理没有记忆能力。
      • 3.Http协议格式
        • 3.1客户端请求消息格式
          • 请求行、请求头部、空行和请求数据
        • 3.2post 和 get的区别
          • GET通常用来从服务器上获得数据,而非修改信息;POST用来向服务器传递数据。
          • (1)、请求数据时带参数时;GET请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。POST请求会把请求的数据放置在HTTP请求包的包体中。因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。
          • (2)、传输数据的大小;在HTTP规范中,没有对URL的长度和传输的数据大小进行限制,在使用GET请求时,传输数据会受到URL长度的限制。对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制
          • (3)、GET请求返回的内容可以被浏览器缓存起来。浏览器不会缓存POST请求返回的内容
          • (4)、GET对数据进行查询,POST主要对数据进行增删改!简单说,GET是只读,POST是写
          • (5)、对于参数的数据类型,get只接受ASCII字符,而post没有限制。
        • 3.3服务器响应消息格式
          • 状态行、消息报头、空行和响应正文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 性能优化:如何利用 APM 工具提升系统性能?

Java 性能优化:如何利用 APM 工具提升系统性能? 在当今竞争激烈的软件开发领域,系统性能至关重要。随着应用规模的扩大和用户需求的增加,性能问题逐渐凸显,这不仅影响用户体验,还可能导致业务损失。而 APM…

AI音乐解决方案:1分钟可切换suno、udio、luno、kuka等多种模型,suno风控秒切换 | AI Music API

你有没有觉得,suno风控来了,就要停服了? 你有没有觉得,对接多种音乐模型,让你很疲乏? 你有没有觉得,音乐模型,中文咬字不清楚,让你很苦恼? 别怕&#xff0…

一键升级OpenSSH/OpenSSL修复安全漏洞

在服务器安全运维过程中,我们经常面临这样的问题:收到高危漏洞通报(如最近的OpenSSH多个CVE漏洞),但Ubuntu系统无法通过apt直接升级到修复版本。这种情况下,传统方法需要手动编译源码,处理依赖关…

健康养生,开启新生活

在饮食上,应遵循 “均衡搭配、清淡少盐” 的原则。主食不要只吃精米白面,可适当加入燕麦、糙米等全谷物,为身体补充膳食纤维;每天保证一斤蔬菜半斤水果,深色蔬菜如菠菜、西兰花富含维生素与矿物质,水果则选…

VLAN间通讯技术

多臂路由 路由器使用多条物理线路,每条物理线路充当一个 VLAN 的网管 注意:路由器对端的交换机接口,需要设定 Access 类型,因为路由器的物理接口无法处理 VLAN 标签 。 单臂路由 使用 以太网子接口 (sub-interface) 实现。 …

人工智能在慢病管理中的具体应用全集:从技术落地到场景创新

一、AI 赋能慢病管理:技术驱动医疗革新 1.1 核心技术原理解析 在当今数字化时代,人工智能(AI)正以前所未有的态势渗透进医疗领域,尤其是在慢性病管理方面,展现出巨大的潜力和独特优势。其背后依托的机器学习、深度学习、自然语言处理(NLP)以及物联网(IoT)与可穿戴设…

B+树节点与插入操作

B树节点与插入操作 设计B树节点 在设计B树的数据结构时,我们首先需要定义节点的格式,这将帮助我们理解如何进行插入、删除以及分裂和合并操作。以下是对B树节点设计的详细说明。 节点格式概述 所有的B树节点大小相同,这是为了后续使用自由…

线性回归之多项式升维

文章目录 多项式升维简介简单案例实战案例多项式升维优缺点 多项式升维简介 多项式升维(Polynomial Expansion)是线性回归中一种常用的特征工程方法,它通过将原始特征进行多项式组合来扩展特征空间,从而让线性模型能够拟合非线性关…

颠覆传统!毫秒级响应的跨平台文件同步革命,远程访问如本地操作般丝滑

文章目录 前言1. 安装Docker2. Go File使用演示3. 安装cpolar内网穿透4. 配置Go File公网地址5. 配置Go File固定公网地址 前言 在这个信息爆炸的时代,谁不曾遭遇过类似的窘境呢?试想,当你正于办公室中埋首案牍时,手机突然弹出一…

CrewAI Community Version(一)——初步了解以及QuickStart样例

目录 1. CrewAI简介1.1 CrewAI Crews1.2 CrewAI Flows1.3 Crews和Flows的使用情景 2. CrewAI安装2.1 安装uv2.2 安装CrewAI CLI 3. 官网QuickStart样例3.1 创建CrewAI Crews项目3.2 项目结构3.3 .env3.4 智能体角色及其任务3.4.1 agents.yaml3.4.2 tasks.yaml 3.5 crew.py3.6 m…

Nginx下搭建rtmp流媒体服务 并使用HLS或者OBS测试

所需下载地址: 通过网盘分享的文件:rtmp 链接: https://pan.baidu.com/s/1t21J7cOzQR1ASLrsmrYshA?pwd0000 提取码: 0000 window: 解压 win目录下的 nginx-rtmp-module-1.2.2.zip和nginx 1.7.11.3 Gryphon.zip安装包,解压时选…

Lateral 查询详解:概念、适用场景与普通 JOIN 的区别

1. 什么是Lateral查询? Lateral查询(也称为横向关联查询)是一种特殊的子查询,允许子查询中引用外层查询的列(即关联引用),并在执行时逐行对外层查询的每一行数据执行子查询。 语法上通常使用关…

【springsecurity oauth2授权中心】简单案例跑通流程 P1

项目被拆分开,需要一个授权中心使得每个项目都去授权中心登录获取用户权限。而单一项目里权限使用的是spring-security来控制的,每个controller方法上都有 PreAuthorize("hasAuthority(hello)") 注解来控制权限,想以最小的改动来实…

spark—SQL3

连接方式 内嵌Hive: 使用时无需额外操作,但实际生产中很少使用。 外部Hive: 在虚拟机下载相关配置文件,在spark-shell中连接需将hive-site.xml拷贝到conf/目录并修改url、将MySQL驱动copy到jars/目录、把core-site.xml和hdfs-sit…

一文了解相位阵列天线中的真时延

本文要点 真时延是宽带带相位阵列天线的关键元素之一。 真时延透过在整个信号频谱上应用可变相移来消除波束斜视现象。 在相位阵列中使用时延单元或电路板,以提供波束控制和相移。 市场越来越需要更快、更可靠的通讯网络,而宽带通信系统正在努力满…

linux学习 5 正则表达式及通配符

重心应该放在通配符的使用上 正则表达式 正则表达式是用于 文本匹配和替换 的强大工具 介绍两个交互式的网站来学习正则表达式 regexlearn 支持中文 regexone 还有一个在线测试的网址 regex101 基本规则 符号作用示例.匹配任何字符除了换行a.b -> axb/a,b[abc]匹配字符…

基于超启发鲸鱼优化算法的混合神经网络多输入单输出回归预测模型 HHWOA-CNN-LSTM-Attention

基于超启发鲸鱼优化算法的混合神经网络多输入单输出回归预测模型 HHWOA-CNN-LSTM-Attention 随着人工智能技术的飞速发展,回归预测任务在很多领域得到了广泛的应用。尤其在金融、气象、医疗等领域,精确的回归预测模型能够为决策者提供宝贵的参考信息。为…

Android RK356X TVSettings USB调试开关

Android RK356X TVSettings USB调试开关 平台概述操作-打开USB调试实现源码补充说明 平台 RK3568 Android 11 概述 RK3568 是瑞芯微(Rockchip)推出的一款高性能处理器,支持 USB OTG(On-The-Go)和 USB Host 功能。US…

消息队列知识点详解

消息队列场景 什么是消息队列 可以把消息队列理解一个使用队列来通信的组件,它的本质是交换机队列的模式,实现发送消息,存储消息,消费消息的过程。 我们通常说的消息队列,MQ其实就是消息中间件,业界中比较…

序列号绑定的SD卡坏了怎么办?

在给SD卡烧录程序的时候,大家发现有的卡是无法烧录的,如:复印机的SD卡不能被复制通常涉及以下几个技术原因,可能与序列号绑定、加密保护或硬件限制有关: 一、我们以复印机的系统卡为例来简单讲述一下 序列号或硬件绑定…