封包组包易语言源码

源码程序结合易语言数据操作支持库和数据结构支持库,实现网络传送的数据包的解析功能。

.版本 2 .支持库 EDataStructure .支持库 iext .支持库 dp1 .程序集 窗口程序集1 .程序集变量 总数据, 字节集 .程序集变量 数据表, 链表 .程序集变量 已发送, 整数型 .子程序 __启动窗口_创建完毕 按钮1.禁止 = 真 .子程序 _客户1_数据到达 .局部变量 进度条位置, 整数型 .局部变量 收到的数据, 字节集 .局部变量 健值, 整数型 .局部变量 包头, 文本型 收到的数据 = 客户1.取回数据 () 收到的信息处理 (收到的数据, 健值, 包头) 输出调试文本 (“客户机收到的数据: ” + 到文本 (收到的数据)) .如果真 (包头 = “发送”) 发送分包 (健值) .如果真结束 .如果真 (包头 = “收完”) 数据表.全部删除 () 透明标签1.标题 = “传送完毕!” .如果真结束 .子程序 _按钮1_被单击 .局部变量 分包数量, 整数型 透明标签1.标题 = “” 总数据 = 图片框1.图片 待发送数据处理 (总数据, 1024) 分包数量 = 数据表.取大小 () 客户1.发送数据 (到字节集 (“信息”) + 到字节集 (#分隔符) + 到字节集 (#分隔符) + 到字节集 (#分隔符) + 到字节集 (#分隔符) + 到字节集 (分包数量)) ' 将要发送的数据总大小,发送 输出调试文本 (“信息” + 到文本 (分包数量)) .子程序 收到的信息处理, , , 拆分信息包 .参数 收到的信息, 字节集 .参数 健值, 整数型, 参考 可空 .参数 包头, 文本型, 可空 包头 = 到文本 (取字节集左边 (收到的信息, 4)) 健值 = 到整数 (取字节集数据 (收到的信息, 10, 5)) .子程序 待发送数据处理, , , 将待发送数据以链表的形式存储 .参数 待发送数据, 字节集 .参数 分包大小, 整数型 .局部变量 临时节点, 节点 .局部变量 数据指针, 整数型 .局部变量 待发送数据处理大小, 整数型 .局部变量 分包数据, 字节集 .局部变量 分包数据摘要, 文本型 .局部变量 健值, 整数型 待发送数据处理大小 = 取字节集长度 (待发送数据) 数据指针 = 1 .判断循环首 (数据指针 ≤ 待发送数据处理大小) 临时节点.删除属性 (“数据”) 临时节点.删除属性 (“md5”) 临时节点.删除属性 (“分包头”) 临时节点.删除属性 (“数据长度”) .如果 (待发送数据处理大小 - 数据指针 ≤ 分包大小) 分包数据 = 取字节集右边 (待发送数据, 待发送数据处理大小 - 数据指针) .否则 分包数据 = 取字节集中间 (待发送数据, 数据指针, 分包大小) .如果结束 数据指针 = 数据指针 + 分包大小 分包数据摘要 = 取数据摘要 (分包数据) ' 取分包md5值 临时节点.加入属性 (“数据”, 分包数据) 临时节点.加入属性 (“md5”, 分包数据摘要) 临时节点.加入属性 (“分包头”, “数据”) 临时节点.加入属性 (“数据长度”, 到文本 (取字节集长度 (分包数据))) ' 临时节点.加入属性 (“键值”, 到文本 (分包键值)) 数据表.加入节点 (临时节点, ) 数据表.到尾节点 () 数据表.取当前节点键值 (健值) 输出调试文本 (“健值:” + 到文本 (健值) + “分包数据长度为::” + 到文本 (取字节集长度 (分包数据))) .判断循环尾 () .子程序 发送分包, , , 分包头+数据+md5+健值 .参数 健值, 整数型 .局部变量 临时节点1, 节点 .局部变量 节点字节值, 字节集 .局部变量 节点文本值, 文本型 .局部变量 处理后数据, 字节集, , , 分包头+数据+数据长度+md5+健值 数据表.搜索节点 (健值) 数据表.取当前节点 (临时节点1) ' 数据表.取节点 (临时节点, 健值) 临时节点1.取文本值 (“分包头”, 节点文本值) 处理后数据 = 到字节集 (节点文本值) + 到字节集 (#分隔符) 临时节点1.取字节集值 (“数据”, 节点字节值) 处理后数据 = 处理后数据 + 节点字节值 + 到字节集 (#分隔符) 临时节点1.取文本值 (“数据长度”, 节点文本值) 处理后数据 = 处理后数据 + 到字节集 (节点文本值) + 到字节集 (#分隔符) 临时节点1.取文本值 (“md5”, 节点文本值) 处理后数据 = 处理后数据 + 到字节集 (节点文本值) + 到字节集 (#分隔符) + 到字节集 (到文本 (健值)) 客户1.发送数据 (处理后数据) .子程序 _图片框1_被双击, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .子程序 _图片框1_鼠标左键被按下, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .局部变量 文件名, 文本型 .局部变量 文件号, 整数型 通用对话框1.过滤器 = “所有图片文件(*.jpg;*.bmp;*.gif.....)|*.jpg;*.bmp;*.gif|所有文件(*.*)|*.*” 通用对话框1.打开 () 文件名 = 通用对话框1.文件名 文件号 = 打开文件 (文件名, 1, ) 图片框1.图片 = 读入字节集 (文件号, 取文件尺寸 (文件名)) 输出调试文本 (文件名) .子程序 _按钮2_被单击 .如果真 (编辑框1.内容 ≠ “”) .如果真 (客户1.连接 (编辑框1.内容, 19730)) 按钮1.禁止 = 假 按钮2.禁止 = 真 .如果真结束 .如果真结束 编辑框1.内容 = “请输入服务器IP地址!” .子程序 _按钮3_被单击 客户1.断开连接 () 按钮1.禁止 = 真 按钮2.禁止 = 假
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注