易语言服务器组件多线程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