易語言服務器組件多線程Demo


普通版

.版本 2

.支持庫 spec

.子程序 _服務器1_數據到達
.局部變量 客戶, 文本型

客戶 = 服務器1.取回客戶 ()
線程_啟動 (&子程序1, 取變量數據地址 (客戶), )
延時 (100)

.子程序 子程序1
.參數 客戶, 文本型


.計次循環首 (3, )
    線程_進入許可區 (許可證)
    .如果真 (服務器1.發送數據 (客戶, 到字節集 (文本_取隨機漢字 (1000, 0)), 1))
        跳出循環 ()
    .如果真結束
    線程_退出許可區 (許可證)
.計次循環尾 ()

服務器1.斷開客戶 (客戶)

 

注意:取變量數據地址()可以給線程傳參文本型數據

          延時100毫秒是必須要加的,否則文本型傳參會失敗。

=============================

內存版本

 

.版本 2
.支持庫 spec
.支持庫 EThread

.程序集 窗口程序集_啟動窗口

.子程序 _服務器程序_數據到達
.局部變量 客戶IP, 文本型
.局部變量 請求內容, 文本型
.局部變量 tempStr, 文本型
.局部變量 內存地址, 整數型

客戶IP = 服務器程序.取回客戶 ()
請求內容 = 到文本 (服務器程序.取回數據 ())
tempStr = 客戶IP + “|@|” + 請求內容
內存地址 = 申請內存 (取文本長度 (tempStr) + 1, 真)
寫到內存 (tempStr, 內存地址, 取文本長度 (tempStr))
啟動線程 (&數據到達, 內存地址, )

.子程序 數據到達
.參數 內存地址, 整數型
.局部變量 分割, 文本型, , "0"
.局部變量 請求內容, 文本型
.局部變量 客戶IP, 文本型

分割 = 分割文本 (指針到文本 (內存地址), “|@|”, )
釋放內存 (內存地址)
客戶IP = 分割 [1]
請求內容 = 分割 [2]
調試輸出 (客戶IP, 請求內容)


.子程序 _服務器程序_客戶進入
.局部變量 客戶IP, 文本型
.局部變量 內存地址, 整數型

客戶IP = 服務器程序.取回客戶 ()
內存地址 = 申請內存 (取文本長度 (客戶IP) + 1, 真)
寫到內存 (客戶IP, 內存地址, 取文本長度 (客戶IP))
啟動線程 (&客戶進入, 內存地址, )

.子程序 客戶進入
.參數 內存地址, 整數型
.局部變量 客戶IP, 文本型

客戶IP = 指針到文本 (內存地址)
釋放內存 (內存地址)
調試輸出 (客戶IP)


.子程序 _服務器程序_客戶離開
.局部變量 客戶IP, 文本型
.局部變量 內存地址, 整數型

客戶IP = 服務器程序.取回客戶 ()
內存地址 = 申請內存 (取文本長度 (客戶IP) + 1, 真)
寫到內存 (客戶IP, 內存地址, 取文本長度 (客戶IP))
啟動線程 (&客戶離開, 內存地址, )

.子程序 客戶離開
.參數 內存地址, 整數型
.局部變量 客戶IP, 文本型

客戶IP = 指針到文本 (內存地址)
釋放內存 (內存地址)
調試輸出 (客戶IP)

 

原文轉自:http://www.zhizhuowz.com/post-504.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM