窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
日志 | 类_日志输出 | |
集_IP地址 | 文本型 | |
线程池 | 鱼刺类_线程池Ex | |
多线程 | 鱼刺类_线程操作 | |
集_许可证 | 整数型 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
IP分割 | 文本型 | | 0 |
端口号 | 整数型 | | |
如果 (按钮_扫描.标题 =
“扫描”)
集_IP地址 = 编辑框_IP.内容

IP分割 =
分割文本 (集_IP地址,
“.”,
)
如果真 (取数组成员数 (IP分割
) ≠ 4
)
信息框 (“IP格式不对!”, 16, ,
)
返回 ()


多线程.
置CPU亲和性 ()
多线程.
创建 (&投递任务, , , , , , , , ,
)
按钮_扫描.标题 =
“停止”

线程池.
销毁 (,
)
多线程.
强制结束 ()
多线程.
关闭句柄 ()
_删除进入许可证 (集_许可证
)
按钮_扫描.标题 =
“扫描”
变量名 | 类 型 | 静态 | 数组 | 备 注 |
端口号 | 整数型 | | |
ret | 逻辑型 | | |
集_许可证 =
_创建进入许可证 ()线程池.
创建 (10, 20, , , , ,
)端口号 = 1
判断循环首 (真)
如果真 (端口号 ≥ 65535
)
跳出循环 ()


线程池.
投递任务 (&端口测试, 端口号,
)
调试输出 (到文本 (端口号
))

端口号 = 端口号 + 1
延迟 (10
)
判断循环尾 ()
判断循环首 (真)
如果真 (线程池.
取_执行线程数 () = 0
)

线程池.
销毁 (,
)

多线程.
强制结束 ()

多线程.
关闭句柄 ()
_删除进入许可证 (集_许可证
)
信息框 (“任务完成!”, 0, ,
)
跳出循环 ()
延迟 (1000)
判断循环尾 ()_进入许可区 (集_许可证
)状态条_提示信息.
置文本 (1,
“扫描” +
到文本 (端口号
) +
“端口中。。。”)_退出许可区 (集_许可证
)
如果真 (客户1.
连接 (集_IP地址, 端口号
))
_进入许可区 (集_许可证
)
日志.
输出编辑框 (编辑框_结果.
取窗口句柄 (),
“端口” +
到文本 (端口号
) +
“已开放!”, 0,
)
_退出许可区 (集_许可证
)
返回 ()