为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

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

封包组包易语言源码

三叶资源网 2013-03-02 05:06:51 网络相关源码 1818 ℃ 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,(三叶资源网⑤群:21414575

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

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
websocket协议自动同意进群TTP-244条形码模拟QQ登陆取已登录QQ高级输入框验证码识别B站弹幕助手源码字节集搜索Safengine异步套接字源码模仿QQ登录万年历永辉生活FTP验证Xml文本编辑器工具箱图片生成器黑月界面类Hp-Socket1
最新评论