|
工作需要写了个工具关于远程支持库的操作,源码如下:
服务端:(关键源码,非全部)
服务器.置线程池大小 (1, 10)
服务器.启动 (12730, &处理函数, 假)
信息类型 = 服务器.取消息类型 (信息地址)
服务器.取客户句柄 (信息地址, 客户句柄)
服务器.取客户IP (客户句柄, 客户ip)
' 服务器.取客户数组 ()
.判断开始 (信息类型 = 0) ' 客户连接进入后,启动线程,发送文件列表。
.判断开始 (客户ip ≠ “” 且 是否为数组成员 (全所有ip, 客户ip) = 假)
加入成员 (全所有ip, 客户ip)
加入成员 (全所有客户句柄, 客户句柄)
加入成员 (全所有名字, 获取名字 (客户ip))
编辑框1.加入文本 (“客户进入-客户ip:” + 客户ip + “ 客户句柄:” + 到文本 (客户句柄) + #换行符)
.判断 (是否为数组成员 (全所有ip, 客户ip) = 真 且 是否为数组成员_整数 (全所有客户句柄, 客户句柄) = 假) ' 同一ip下登录多个客户端
下标 = 获取数组成员索引_文本 (全所有ip, 客户ip)
客户ip = 全所有ip [下标]
服务器.断开连接 (全所有客户句柄 [下标])
编辑框1.加入文本 (“客户离开(同一ip下登录多个客户端,强制下线)-客户ip:” + 客户ip + “ 客户句柄:” + 到文本 (全所有客户句柄 [下标]) + #换行符)
删除成员 (全所有ip, 下标, 1)
删除成员 (全所有客户句柄, 下标, 1)
删除成员 (全所有名字, 下标, 1)
加入成员 (全所有ip, 客户ip)
加入成员 (全所有客户句柄, 客户句柄)
加入成员 (全所有名字, 获取名字 (客户ip))
编辑框1.加入文本 (“客户进入-客户ip:” + 客户ip + “ 客户句柄:” + 到文本 (客户句柄) + #换行符)
.默认
.判断结束
.判断 (信息类型 = 1) ' 客户断开。那么将列表框里的客户IP删除。实际上代码执行并不顺畅,不知原因
下标 = 获取数组成员索引 (全所有客户句柄, 客户句柄)
客户ip = 全所有ip [下标]
编辑框1.加入文本 (“客户离开-客户ip:” + 客户ip + “ 客户句柄:” + 到文本 (客户句柄) + #换行符)
删除成员 (全所有ip, 下标, 1)
删除成员 (全所有客户句柄, 下标, 1)
删除成员 (全所有名字, 下标, 1)
.判断 (信息类型 = 2)
服务器.取请求字节集 (信息地址, 请求代码, 接收字节集)
下标 = 获取数组成员索引 (全所有客户句柄, 客户句柄)
接收文本 = 到文本 (接收字节集)
.如果真 (接收文本 = “” 或 接收文本 = #换行符)
返回 ()
.如果真结束
编辑框1.加入文本 (客户ip + “:” + 接收文本 + #换行符)
.如果真 (接收文本 = 全抖动)
.计次循环首 (取数组成员数 (全所有客户句柄), 计次)
服务器发送消息 (全所有客户句柄 [计次], 下标, 全抖动)
.如果 (全所有客户句柄 [计次] ≠ 客户句柄)
服务器发送消息 (全所有客户句柄 [计次], 下标, “给您发送了一个窗口抖动。”)
.否则
服务器发送消息 (全所有客户句柄 [计次], -1, “您发送了一个窗口抖动。”)
.如果结束
客户端关键源码:
.如果真 (集客户.连接 (12730, “192.168.8.111”, 假, &处理函数) = 假)
信息框 (“连接192.168.8.111失败”, 64, , )
.局部变量 信息类型, 整数型
.局部变量 请求代码, 文本型
.局部变量 接收字节集, 字节集
.局部变量 接收文本, 文本型
信息类型 = 集客户.取消息类型 (信息地址)
.判断开始 (信息类型 = -1)
信息框 (“连接服务器出现错误”, 64, , )
.判断 (信息类型 = 0)
信息框 (“服务器关闭或者与客户的连接意外断开”, 64, , )
.判断 (信息类型 = 1)
集客户.取返回字节集 (信息地址, 接收字节集)
接收文本 = 到文本 (接收字节集)
.如果真 (取文本右边 (接收文本, 33) = 全抖动)
.如果真 (全屏蔽抖动 = 假)
本窗口抖动 ()
.如果真结束
返回 ()
.如果真结束
.如果真 (取文本右边 (接收文本, 37) = 全广播)
全广播内容 = 取文本左边 (接收文本, 取文本长度 (接收文本) - 取文本长度 (全广播))
广播时钟.时钟周期 = 100
返回 ()
.如果真结束
.如果真 (取文本右边 (接收文本, 24) = “给您发送了一个窗口抖动。”)
服务端消息编辑框添加文本 (接收文本)
返回 ()
.如果真结束
服务端消息编辑框添加文本 (接收文本)
需要有:远程服务支持库2.0版本,需要的话,也可以上传上来
|
|