為編程愛好者分享易語言教程源碼的資源網
易語言|按鍵精靈|app逆向|微信hook 收QQ協議|PC協議|安卓協議 收購QQ通訊協議|點擊聯系 收PCQQ協議|安卓QQ協議|聯系我 收易語言QQ協議|你有就找我 每日必買商品
注冊機|遊戲腳本|透視輔助|視頻教程 收QQ協議|PC協議|安卓協議 收購QQ通訊協議|點擊聯系 收PCQQ協議|安卓QQ協議|聯系我 收易語言QQ協議|你有就找我 挂機,挂機器人服務器88一年

網站首頁 易語言相關 網絡相關源碼 正文

封包組包易語言源碼

三葉資源網 2013-03-02 網絡相關源碼 584 ℃ 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,(三葉資源網④群:72857039

本文暫時沒有評論,來添加一個吧(●'◡'●)

歡迎 發表評論:

百度站内搜索
關注微信公衆号
三葉資源網④群:三葉資源網③群

網站分類
随機tag
Hp-SocketIMAP收信kktv采集找圖API例程數據庫API創建時鐘Unicode字符串協程模塊正則clientToken算法QQ空間尋找文件組件使用例程STEAM百度163郵箱注冊CURLSqlite本地庫
最新評論