|
板凳

楼主 |
发表于 2013-12-13 20:47:24
|
只看该作者
广东省梅州市
[e]
.版本 2
.支持库 Exmlrpc
.子程序 启动服务器
.局部变量 接收返回, 文本型
.局部变量 服务器返回, 逻辑型
接收返回 = 账号接收端口 (到整数 (编辑框1.内容))
.如果真 (接收返回 = “成功”)
服务器.置线程池大小 (5, 5000000)
服务器返回 = 服务器.启动 (5230, &数据处理, 假)
.如果真 (服务器返回 = 真)
调试信息 (“[服务器]开启远程成功...”)
.如果真结束
.如果真结束
[/e]
[e]
.版本 2
.支持库 Exmlrpc
.支持库 spec
.子程序 数据处理
.参数 消息地址, 整数型
.局部变量 消息类型, 整数型
.局部变量 客户句柄, 整数型
.局部变量 客户ip, 文本型
.局部变量 请求代码, 文本型
.局部变量 请求文本, 文本型
.局部变量 n, 整数型
.局部变量 客户句柄数组, 整数型, , "0"
.局部变量 客户数组ip, 文本型
.局部变量 i, 整数型
.局部变量 数据分割, 文本型, , "0"
消息类型 = 服务器.取消息类型 (消息地址)
服务器.取客户句柄 (消息地址, 客户句柄)
服务器.取客户IP (客户句柄, 客户ip)
.如果真 (消息类型 = 0) ' 客户端进入
服务器.取客户数组 (客户句柄数组)
.计次循环首 (取数组成员数 (客户句柄数组), n)
服务器.取客户IP (客户句柄数组 [n], 客户ip)
.如果真 (取项目文本在选择列表框中的位置 (客户端_选择列表框, 客户ip + “:” + 到文本 (客户句柄数组 [n])) = -1)
客户端_选择列表框.加入项目 (客户ip + “:” + 到文本 (客户句柄数组 [n]), )
.如果真结束
.如果真 (取项目文本在选择列表框中的位置 (客户端_选择列表框, 客户ip + “:” + 到文本 (客户句柄数组 [n])) = 0)
客户端_选择列表框.加入项目 (客户ip + “:” + 到文本 (客户句柄数组 [n]), )
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真 (消息类型 = 2) ' 接收数据
服务器.取请求文本 (消息地址, 请求代码, 请求文本)
次数 = 次数 + 1
调试输出 (次数)
.如果真 (寻找文本 (请求文本, “存号”, , 假) ≠ -1) ' 存未激活
数据分割 = 分割文本 (请求文本, “|”, )
未激活_列表框.加入项目 (数据分割 [2], )
.如果真结束
.如果真 (寻找文本 (请求文本, “提取邮箱”, , 假) ≠ -1) ' 发送邮箱
.如果真 (总邮箱使用次数 ≠ 5)
.如果真 (邮箱序号 ≠ 取数组成员数 (邮箱_数组))
.如果真 (邮箱序号 = 0)
邮箱序号 = 1
.如果真结束
服务器.发送文本 (请求代码, “邮箱|” + 邮箱_数组 [邮箱序号])
邮箱序号 = 邮箱序号 + 1
写出邮箱使用状况 (总邮箱使用次数, 邮箱序号)
.如果真结束
.如果真 (邮箱序号 = 取数组成员数 (邮箱_数组))
总邮箱使用次数 = 总邮箱使用次数 + 1
邮箱序号 = 1
写出邮箱使用状况 (总邮箱使用次数, 邮箱序号)
.如果真结束
.如果真结束
.如果真 (总邮箱使用次数 = 5)
.如果真 (邮箱序号 ≥ 取数组成员数 (邮箱_数组) - 500)
调试信息 (“[邮箱]警告:邮箱数量不足请更换...”)
.如果真结束
.如果真结束
.如果真结束
.如果真 (寻找文本 (请求文本, “座位”, , 假) ≠ -1) ' 接收座位
数据分割 = 分割文本 (请求文本, “|”, )
加入成员 (座位数组, 数据分割 [2])
调试信息 (“[座位]接收:” + 数据分割 [2])
服务器.发送文本 (请求代码, “已收”)
.如果真结束
.如果真 (寻找文本 (请求文本, “取房间位置”, , 假) ≠ -1) ' 发送座位
.如果真 (请求次数 ≠ 1)
.如果 (取数组成员数 (座位数组) ≠ 0)
服务器.发送文本 (请求代码, “座位|” + 座位数组 [1])
调试信息 (“[座位]发送:” + 座位数组 [1])
请求次数 = 请求次数 + 1
.否则
服务器.发送文本 (请求代码, “暂无主号在线”)
.如果结束
.如果真结束
.如果真 (请求次数 = 1)
删除成员 (座位数组, 1, )
请求次数 = 0
.如果真结束
.如果真结束
.如果真 (寻找文本 (请求文本, “取号”, , 假) ≠ -1) ' 取小号
服务器.发送文本 (请求代码, “账号|” + 已激活_列表框.取项目文本 (0))
已激活_列表框.删除项目 (0)
.如果真结束
.如果真结束
.如果真 (消息类型 = 1) ' 客户端退出
服务器.取客户数组 (客户句柄数组)
客户端_选择列表框.清空 ()
.计次循环首 (取数组成员数 (客户句柄数组), n)
服务器.取客户IP (客户句柄数组 [n], 客户ip)
.如果真 (取项目文本在选择列表框中的位置 (客户端_选择列表框, 客户ip + “:” + 到文本 (客户句柄数组 [n])) = -1)
客户端_选择列表框.加入项目 (客户ip + “:” + 到文本 (客户句柄数组 [n]), )
.如果真结束
.如果真 (取项目文本在选择列表框中的位置 (客户端_选择列表框, 客户ip + “:” + 到文本 (客户句柄数组 [n])) = 0)
客户端_选择列表框.加入项目 (客户ip + “:” + 到文本 (客户句柄数组 [n]), )
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真 (消息类型 = -1) ' 客户端异常退出
服务器.取客户数组 (客户句柄数组)
客户端_选择列表框.清空 ()
.计次循环首 (取数组成员数 (客户句柄数组), n)
服务器.取客户IP (客户句柄数组 [n], 客户ip)
.如果真 (取项目文本在选择列表框中的位置 (客户端_选择列表框, 客户ip + “:” + 到文本 (客户句柄数组 [n])) = -1)
客户端_选择列表框.加入项目 (客户ip + “:” + 到文本 (客户句柄数组 [n]), )
.如果真结束
.如果真 (取项目文本在选择列表框中的位置 (客户端_选择列表框, 客户ip + “:” + 到文本 (客户句柄数组 [n])) = 0)
客户端_选择列表框.加入项目 (客户ip + “:” + 到文本 (客户句柄数组 [n]), )
.如果真结束
.计次循环尾 ()
[/e]
源码 |
|