|
地板
发表于 2017-12-18 04:57:40
|
只看该作者
广东省惠州市
不知道什么情况 用线程 在调试模式下 很多种类的 端口检测 会出问题 编译出来的 又大部分不会
.版本 2
.支持库 spec
.支持库 EThread
.支持库 iext
.局部变量 add, sockaddr_in
.局部变量 s, 整数型
.局部变量 超时时间, 整数型
.局部变量 ul, 长整数型
.局部变量 time, timeval
.局部变量 fd, fd_set
.局部变量 err, 整数型
.局部变量 局_申请内存, 整数型
.局部变量 索引, 整数型
局_申请内存 = 申请内存 (15, )
写到内存 (插入IP, 局_申请内存, 15)
s = socket (#AF_INET, #SOCK_STREAM, #IPPROTO_TCP)
.如果真 (s = #INVALID_SOCKET)
调试输出 (“创建 socket 失败”)
返回 ()
.如果真结束
超时时间 = 100 ' 时间
setsockopt (s, #SOL_SOCKET, #SO_SNDTIMEO, 超时时间, 4) ' 发送超时
setsockopt (s, #SOL_SOCKET, #SO_RCVTIMEO, 超时时间, 4) ' 接受超时
ul = 1 ' 1非阻塞;0阻塞
.如果真 (ioctlsocket (s, #FIONBIO, ul) = #SOCKET_ERROR) ' 设置非阻塞方式
返回 ()
.如果真结束
add.sin_family = #AF_INET
add.sin_port = htons (插端口)
add.sin_addr = inet_addr (插入IP)
connect (s, add, 16)
time.sec = 1 ' 连接超时
time.usec = 0
fd.count = 1
fd.s [1] = s
.如果真 (select (0, 0, fd, 0, time) > 0)
err = -1
getsockopt (s, #SOL_SOCKET, 4103, err, 4)
.如果 (err = 0)
进入许可区 (线程许可)
索引 = 结果_超级列表框.取表项数 ()
结果_超级列表框.插入表项 (-1, 插入IP, , , , )
结果_超级列表框.置标题 (索引, 1, 到文本 (插端口))
' 写到文件 (结果数据目录 + “结果数据.ini”, 到字节集 (插入IP + “:” + 到文本 (插端口) + “端口开启”))
退出许可区 (线程许可)
.否则
|
|