为编程爱好者分享易语言教程源码的资源网
三叶资源网易语言免费公开课
三叶资源网官方③群:33301895 三叶资源网解压密码 C全站文字广告,诚邀与您合作 三叶资源网培训教程视频 三叶资源网官方③群:33301895
三叶资源网官方③群:33301895 三叶资源网访问导航 B全站文字广告,诚邀与您合作 三叶资源网培训教程视频 三叶资源网官方③群:33301895

网站首页 易语言相关 网络相关源码 正文

封包组包易语言源码

三叶资源网 2013-03-02 网络相关源码 307 ℃ 0 评论

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

@黑客源码

.版本 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.禁止 = 假
文件下载


Tags:封包组包

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网官方③群:33301895

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
交流QQ群:33301895
三叶资源网官方③群:33301895
加群全凭信仰,群里有的资源网站也会有。
群里只是能及时交流,群主会尽力解答一些会的问题。
设置付费入群,只是为了过滤一些小号无意义广告。
所以不必要为了1块钱加群又退出
群主在群内发的红包都够你抢回来还有的多,更何况还能交流学习。
网站分类
随机tag
变现IOCP多线程注册易语言源码网鱼刺多线程模块邮箱轰炸器多彩浏览框变体型OEM信息POST教程临时会话网页操作按键精灵易语言常见错误iiilab视频解析火山安卓炫彩界面库模块名片点赞集中营易语言吃鸡辅助
最新评论