查看: 84|回复: 0

易语言服务器组件多线程Demo

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-4-26
发表于 2020-7-30 08:34:00 | 显示全部楼层 |阅读模式

普通版

.版本 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

 



来源:https://www.cnblogs.com/hongyuyingxiao/p/13401757.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部