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

 

posted @ 2020-07-30 08:34  洪雨  阅读(1746)  评论(0编辑  收藏  举报

友情链接

洪雨营销