自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 210读文件激活、激活确认、文件传输、文件传输确认

我会按照你提供的协议字段定义,逐字节解析这 4 个报文(读文件激活、激活确认、第一帧传输、第二帧传输),并验证关键字段的一致性和合法性。字节序规则:低字节在前(小端序),仅针对 4 字节字段(文件 ID、文件大小、数据段号)校验码算法:文件数据段的单字节模和运算(所有字节求和后取低 8 位)读文件协议报文完整解析(按协议格式拆解)四、3. 读文件数据传输(第一帧)解析。五、4. 读文件数据传输(第二帧)解析。三、2. 读文件激活确认报文解析。二、1. 读文件激活报文解析。文件数据 ASCII 还原。

2026-01-24 22:02:46 318

原创 210召唤目录及确认

目录召唤确认报文(含精准时间解析)全字段解析。最终完整小端序报文(十六进制,空格分隔)目录召唤确认(操作失败)报文全字段解析。

2026-01-24 17:03:37 20

原创 104文件传输210写文件

按你的核心要求(完整无省略、无后续帧、所有文件 ID 非空),生成 4 个步骤的完整测试报文,文件 ID 统一设为十进制 12345678(十六进制 0x12345678,低字节在前 = 78 56 34 12),数据传输帧后续标志 = 0(无后续),文件名20241027.log长度修正为 12 字节(0C),所有字段严格匹配文档约束。核心要求落地:文件 ID 全程非空(78 56 34 12)、数据传输帧后续标志 = 0(无后续);步骤 3:主站→终端 写文件数据传输(操作标识 = 9,无后续帧)

2025-12-08 21:03:29 207

原创 IEC 104 规约发送序号和接收序号偶数问题

104 规约的发送 / 接收序号是保障主从站通信可靠性的核心,核心规则为「偶数序号、步长 2、接收序号 = 已接收最大发送序号 + 1」,程序内部通过 “左移 / 右移 1 位” 实现 “逻辑序号↔帧内偶数序号” 的转换。接收序号 (nr) 是 “期望下一个接收的发送序号”,规则为:主站逻辑nr = 已正确接收的从站最大逻辑ns + 1。帧内序号必为偶数,程序内部用逻辑序号(+1),通过左 / 右移 1 位转换;从站:发送第 3 帧,逻辑 ns=3→帧内 6(06 00)→主站接收;

2025-12-05 16:11:40 156

原创 Docker 安装 TimescaleDB

验证数据库时区:docker exec -it timescaledb-iot psql -U postgres -c “SELECT current_setting(‘timezone’);数据安全:定期备份数据库(pg_dump -U postgres -d iot_db -f 备份文件.sql),避免数据丢失;修改端口映射(如-p 5433:5432),连接时指定新端口(如psql -p 5433)。版本管理:镜像标签固定为具体版本(如 2.11.0-pg15),避免升级导致兼容问题。

2025-11-26 17:22:36 1057

原创 104协议I帧S帧发送序号和接收序号交互流程

如果控制域是XX YY ZZ WW(4 字节):补充:常见序号示例对比(快速上手)记住核心:前 2 字节是发送序号,后 2 字节是接收序号,小端序(低位在前)计算数值,下次遇到任何 I 帧控制域,直接套用这个规则就能快速解析!

2025-11-26 10:48:41 1102

原创 tcpdum http抓包实践

本次 400 问题的本质是:SpringBoot 的 RestTemplate 基于 JDK 的HttpURLConnection,自动添加了超长的Accept-Charset头,导致请求头总长度超过 Nginx / 服务端的默认限制,而 curl 请求因无冗余头、长度小,能正常通过校验。解决思路的核心是「精简程序请求头,对齐 curl 的极简风格」—— 要么在代码层移除冗余头,要么替换底层 HTTP 客户端,彻底杜绝自动添加超长头的问题。

2025-11-24 22:59:06 683

原创 nc 模拟http服务端

nc(netcat)可以轻松模拟极简但可控的 HTTP 服务端—— 核心是监听 TCP 端口,捕获客户端的原始 HTTP 请求报文,并返回符合 HTTP 规范的响应(支持自定义 200/400 等状态码)。这种方式能裸看客户端请求的所有细节(无任何封装),是排查「程序调用 400、curl 正常」的核心手段。HTTP 是基于 TCP 的文本协议,只要服务端返回的响应报文符合「状态行 + 响应头 + 空行 + 响应体」的格式(换行必须是\r\n),客户端就会识别为合法 HTTP 响应。

2025-11-24 21:37:40 548

原创 mqtt不同场景下QoS 和 Retained 的配置

若需删除某主题的 Retained 消息,可发布一条 “空 payload” 的 Retained 消息(message.setPayload(new byte[0]) + message.setRetained(true)),Broker 会自动清理旧 Retained 消息;:QoS 等级越高,网络带宽和 Broker 负载越大(QoS 2 > QoS 1 > QoS 0),需避免 “过度设计”(如普通传感器用 QoS 2,会浪费资源);一、普通传感器数据:QoS=0,Retained=0。

2025-09-30 11:35:17 660

原创 mqtt topic 通配符使用

MQTT 协议定义了两种通配符,用于订阅主题时匹配多个相关主题(通配符仅用于订阅,不能用于发布消息)。两种通配符分别是 单级通配符(+) 和 多级通配符(#),它们基于主题的 “层级结构” 工作(主题通过 / 分隔层级,例如 sensor/room1/temp 包含 3 个层级)。

2025-09-28 14:34:31 411

原创 16进制转10进制有符号和无符号解析工具

16进制转10进制有符号和无符号解析工具。

2025-09-12 19:40:16 384

原创 Spring Boot HTTPS 实战

本文通过完整的代码实战,覆盖了 Spring Boot HTTPS 服务端和客户端的核心配置:服务端:实现 HTTPS 部署和 HTTP 自动转 HTTPS,关键是 server.ssl 配置和 HttpToHttpsConfig 连接器;客户端:实现证书认证调用,关键是信任库加载、SSL 上下文初始化和 RestTemplate 配置;联调:明确启动顺序和测试步骤,快速验证功能;避坑:针对常见问题给出解决方案,降低调试成本。

2025-09-09 18:48:13 913

原创 https密钥库(KeyStore)的类型

特点:跨平台的标准密钥库格式(由 RSA 实验室定义),被所有主流操作系统(Windows、macOS、Linux)和浏览器支持。特点:基于 JCE(Java 加密扩展)的增强型密钥库,支持更强的加密算法(如 AES、3DES)。特点:Java 原生的密钥库格式,是 JDK 早期默认的密钥库类型(JDK 8 及之前默认)。优势:密钥存储在硬件中,无法被导出,安全性极高,适合存储核心敏感密钥(如根证书私钥)。PKCS12 绝大多数生产环境(跨平台、高兼容性、高安全性) ★★★★★。

2025-09-09 16:09:43 575

原创 kafka压缩配置

Kafka 的压缩逻辑仅在生产者(Producer)端执行,消费者(Consumer)端自动解压(无需额外配置),中间 Broker 仅 “透传压缩后的消息”,不参与压缩 / 解压过程,避免重复计算开销。生产者批次化压缩:生产者将多条消息累积成一个「消息批次(Batch)」,对整个批次的二进制数据进行压缩(而非单条消息),压缩效率更高(批次越大,重复数据越多,压缩率越高);适用场景:消息本身已压缩(如图片、视频、压缩后的二进制文件)、业务要求 “零压缩延迟”(如金融高频交易数据)。

2025-09-01 18:35:45 1003

原创 docker 安装mysql5.7 mysql开启binlog mysql忽略大小写设置

12、查看是否忽略大小写:show global variables like ‘%lower_case%’;8、进入容器 docker exec -it 0be4d499443b /bin/bash。11、查看binlog是否开启:show variables like ‘log_%’;3、运行mysql --privileged=true这个赋予容器操作权限。9、进入mysql : mysql -u root -p。2、创建lm2路径,用于映射容器中mysql数据。6、编辑mysql配置文件。

2023-05-31 17:53:29 1952 1

原创 docker 安装mysql 开启binlog

docker 安装mysql 开启binlog

2023-02-03 15:54:00 1809

原创 2021-06-03

io.seata.common.exception.FrameworkException: can not register RM,err:register error,role:RMROLE,err:cost 30948 ms解决方案:把nacos里面的服务清掉,重启nacos,重启seata,重启业务服务。

2021-06-03 22:32:00 383

原创 2021-06-03

项目工程一重启就时不时的出现io.seata.common.exception.FrameworkException: can not register RM,err:register error,role:RMROLE,err:cost 30948 ms解决方案:将nacos里面的服务清掉,然后重启nacos服务,重启seata服务,重启自己的业务服务。...

2021-06-03 22:26:56 169 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除