开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 283|回复: 14
收起左侧

[完成] hpsocket 例子 包头标识

 关闭 [复制链接]
结帖率:67% (29/43)
发表于 2024-11-4 14:32:04 | 显示全部楼层 |阅读模式   广东省惠州市
5精币
如题  hpsocket模块 例子中 TCP_PACK_服务端

服务端设置了包头标识 比如包头标识设置成 230  发送数据部分比如 发送了到字节集(“12”)2个字节数据   


外部API 收到是  字节集:6{2,0,128,57,49,50}
已知固定规则是  前面2位字节是  数据长度  后面2位是包头指针或者数据


预处理动作如下

局_包头字节 = 字节集_取左边 (局_数据信息, 4)            =   {2,0,128,57}      
局_包头数据 = 取字节集数据 (局_包头字节, #整数型, )  =   964689922(HP包头数值只能 0-1023 官方说明 这里只是调试显示的值)


输出信息   “参数_包头数据” | 964689922 | “包头字节” | 字节集:4{2,0,128,57}

解析代码部分如下
参数_包头数据 = 964689922
局_包头A = 右移 (参数_包头数据, 22)   正常情况下转换出来就是 230  但是如果 包头标识如果设置成 232 或 231 也能解析出来 等于  232 231
局_包头B = 位与 (参数_包头数据, 4194303)  只要包头A解析不出错的情况下 服务端发送多少数据  这里解析都是出现正常数据长度 没有问题


但是  如果HP包头标识如果设置成 232 或 231 也能解析出来 等于  232 231  这里感觉有点不对劲

如果HP包头设置比如1022 他就解析不出来了

有没有大牛知道他这个 包头A 到底是咋解析的呢  麻烦给个列子谢谢
另外还有一个帖子是相同问题 顺手一起答复了 我一起给最佳
https://bbs.125.la/forum.php?mod ... 14839264&extra=












补充内容 (2024-11-4 15:49):
列子在下面

最佳答案

查看完整内容

我已经删掉了。。。 你在论坛找一个汇编右移和汇编位与的代码换掉核心库的就行了 代码之前回复的内容里也有了 补充内容 (2024-11-5 19:36): https://bbs.125.la/forum.php?mod=viewthread&tid=14761617&highlight=%E6%B1%87%E7%BC%96%2B%E8%BF%90%E7%AE%97
结帖率:100% (1/1)

签到天数: 18 天

发表于 2024-11-4 14:32:05 | 显示全部楼层   湖北省鄂州市
ZJL520 发表于 2024-11-5 15:37
自己搞定了  谢谢

我已经删掉了。。。
你在论坛找一个汇编右移和汇编位与的代码换掉核心库的就行了
代码之前回复的内容里也有了

补充内容 (2024-11-5 19:36):
https://bbs.125.la/forum.php?mod ... B%E8%BF%90%E7%AE%97
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 18 天

发表于 2024-11-4 15:03:38 | 显示全部楼层   湖北省鄂州市
写那么一堆 不如把自己的例子发出来 谁知道你用的是不是第三方修改的模块之类的
回复

使用道具 举报

结帖率:67% (29/43)

签到天数: 18 天

 楼主| 发表于 2024-11-4 15:49:42 | 显示全部楼层   广东省惠州市
HP5.8.8测试列子.rar (1.44 MB, 下载次数: 4)
回复

使用道具 举报

结帖率:67% (29/43)

签到天数: 18 天

 楼主| 发表于 2024-11-4 15:50:22 | 显示全部楼层   广东省惠州市
135544 发表于 2024-11-4 15:03
写那么一堆 不如把自己的例子发出来 谁知道你用的是不是第三方修改的模块之类的 ...

楼下   源码楼下   源码楼下   源码
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 18 天

发表于 2024-11-4 22:57:17 | 显示全部楼层   湖北省鄂州市
.版本 2
.支持库 spec

局_包头数据 = 取字节集数据 (取字节集左边 (局_数据信息, 4), #整数型, )
调试输出 (“包头标识”, 右移 (局_包头数据, #TCP_PACK_LENGTH_BITS), “数据长度”, 位与 (局_包头数据, #TCP_PACK_LENGTH_MASK))



.版本 2

.常量 TCP_PACK_LENGTH_BITS, "22"
.常量 TCP_PACK_LENGTH_MASK, "4194303"



捕获.PNG
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 18 天

发表于 2024-11-4 22:59:59 | 显示全部楼层   湖北省鄂州市
调试结果
捕获2.PNG
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 18 天

发表于 2024-11-4 23:10:41 | 显示全部楼层   湖北省鄂州市
ZJL520 发表于 2024-11-4 15:50
楼下   源码楼下   源码楼下   源码

但是我发现你源码里也写了。。。是你取数据有问题


局_包头数据 = 取字节集数据 (取字节集左边 (局_数据信息, 4), #整数型, )
捕获.PNG
回复

使用道具 举报

结帖率:67% (29/43)

签到天数: 18 天

 楼主| 发表于 2024-11-5 03:47:32 | 显示全部楼层   广东省惠州市
135544 发表于 2024-11-4 23:10
但是我发现你源码里也写了。。。是你取数据有问题

错在哪里?
是不是 不能只取四个字节的转换成解析包头的核心数据对吧
直接整段取数据指针的转换成包头核心数据解析包头?
回复

使用道具 举报

结帖率:67% (29/43)

签到天数: 18 天

 楼主| 发表于 2024-11-5 04:01:19 | 显示全部楼层   广东省惠州市
135544 发表于 2024-11-4 23:10
但是我发现你源码里也写了。。。是你取数据有问题

你服务端重新设定包头标识 比如 1022 1023 888 999 这些 然后客户Duan 调试 你试试
你目前弄的这些都是我贴出来的大致 230-233好像都行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表