WEB技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ASP asp.net php
查看: 477|回复: 0
打印 上一主题 下一主题

当时做映客人气的易语言微博登陆协议

  [复制链接]

534

主题

541

帖子

2044

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2044
跳转到指定楼层
楼主
发表于 2018-1-6 20:43:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
.版本 2
.支持库 spec
.支持库 sock

.程序集 weibo

.子程序 login, 文本型, 公开
.参数 user, 文本型
.参数 pass, 文本型
.参数 pincode, 文本型, 可空
.参数 msg, 文本型, 参考 可空
.局部变量 body, 文本型
.局部变量 ret, 文本型
.局部变量 帐号, 文本型
.局部变量 密码, 文本型
.局部变量 状态码, 整数型

帐号 = 编码_URL编码 (user, 真)
密码 = 编码_URL编码 (pass, 真)

' username=15504153153&password=123456&savestate=1&pincode=bk2fr&pcid=gz-d501eff098637f1a95f06fd1d9d2b167a81f&ec=0&pagerefer=&entry=mweibo&wentry=&rf=1&loginfrom=2&client_id=3414846017&code=&qq=&hff=&hfp=

.计次循环首 (5, )
    ret = 到文本 (WinHttp通用 (“https://passport.weibo.cn/sso/login”, “POST”, “username=” + 帐号 + “&password=” + 密码 + “&savestate=1” + pincode + “&ec=0&pagerefer=&entry=mweibo&wentry=&rf=1&loginfrom=2&client_id=3414846017&code=&qq=&hff=&hfp=”, “https://passport.weibo.cn/signin/login?client_id=3414846017&redirect_uri=http://www.meelive.cn/ticker/invoke.html&display=sdk&action=login&offcialMobile=true&rf=1&scope=follow_app_official_microblog”, , , 状态码))
    .如果真 (ret ≠ “”)
        跳出循环 ()
    .如果真结束
    Sleep (3000)  ' 访问超时延时3秒再访问
.计次循环尾 ()
msg = 取中间 (ret, #引号 + “msg” + #引号 + “:” + #引号, #引号)

返回 (ret)

.子程序 检查验证码, 逻辑型, 公开, 空不需要验证码
.参数 用户名, 文本型
.局部变量 ret, 文本型
.局部变量 showpin, 文本型

.计次循环首 (5, )
    ret = 到文本 (WinHttp通用 (“https://login.sina.com.cn/sso/prelogin.php?checkpin=1&entry=mweibo&su=” + BASE64编码 (到字节集 (用户名)) + “&callback=jsonpcallback” + 取13位时间戳 (), “get”))
    .如果真 (ret ≠ “”)
        跳出循环 ()
    .如果真结束
    Sleep (3000)  ' 访问超时延时3秒再访问
.计次循环尾 ()
showpin = 取中间 (ret, #引号 + “showpin” + #引号 + “:”, “,”)
.如果真 (showpin = “1”)  ' 需要验证码
    返回 (真)
.如果真结束
返回 (假)


.子程序 取验证码, 逻辑型, 公开
.参数 验证码图片, 字节集, 参考
.参数 pcid, 文本型, 参考
.局部变量 ret, 文本型
.局部变量 base64, 文本型

.计次循环首 (5, )
    ret = 到文本 (WinHttp通用 (“https://passport.weibo.cn/captcha/image”, “get”))
    .如果真 (ret ≠ “”)
        跳出循环 ()
    .如果真结束
    Sleep (3000)  ' 访问超时延时3秒再访问
.计次循环尾 ()
pcid = 取中间 (ret, #引号 + “pcid” + #引号 + “:” + #引号, #引号)
base64 = 取中间 (ret, “;base64,”, #引号)
base64 = 子文本替换 (base64, “/”, “/”, , , 真)
验证码图片 = BASE64解码 (base64)
.如果真 (pcid ≠ “”)
    返回 (真)
.如果真结束
返回 (假)

.子程序 authorize, 文本型, 公开
.参数 ticket, 文本型
.局部变量 ret, 文本型
.局部变量 body, 文本型
.局部变量 Location, 文本型
.局部变量 verifyToken, 文本型
.局部变量 uid, 文本型
.局部变量 cookie, 文本型

.计次循环首 (5, )
    ret = 到文本 (WinHttp通用 (“https://open.weibo.cn/oauth2/authorize”, “POST”, “client_id=3414846017&redirect_uri=http%3A%2F%2Fwww.meelive.cn%2Fticker%2Finvoke.html&display=sdk&action=login&offcialMobile=true&rf=1&scope=follow_app_official_microblog&wm=3349&ticket=” + 编码_URL编码 (ticket, 真), “https://passport.weibo.cn/signin/login?client_id=3414846017&redirect_uri=http://www.meelive.cn/ticker/invoke.html&display=sdk&action=login&offcialMobile=true&rf=1&scope=follow_app_official_microblog”, , , , Location, , , , , “*/*”))
    .如果真 (Location ≠ “” 或 ret ≠ “”)
        跳出循环 ()
    .如果真结束
    Sleep (3000)  ' 访问超时延时3秒再访问
.计次循环尾 ()
uid = 取中间 (ret, “uid” + #引号 + “ value=” + #引号, #引号)
verifyToken = 取中间 (ret, “verifyToken” + #引号 + “ value=” + #引号, #引号)
.如果真 (verifyToken ≠ “”)  ' 需要再次验证
    Location = authorize_token (uid, verifyToken)
.如果真结束
返回 (Location)

.子程序 authorize_token, 文本型, 公开
.参数 uid, 文本型
.参数 verifyToken, 文本型
.局部变量 body, 文本型
.局部变量 ret, 文本型
.局部变量 Location, 文本型

.计次循环首 (5, )
    ret = 到文本 (WinHttp通用 (“https://open.weibo.cn/oauth2/authorize”, “POST”, “display=sdk&action=scope&scope=&withOfficalFlag=0&withOfficalAccount=null&response_type=code&regCallback=https%253A%252F%252Fopen.weibo.cn%252F2%252Foauth2%252Fauthorize%253Fclient_id%253D3414846017%2526response_type%253Dcode%2526display%253Dsdk%2526redirect_uri%253Dhttp%25253A%25252F%25252Fwww.meelive.cn%25252Fticker%25252Finvoke.html%2526from%253D%2526with_cookie%253D&redirect_uri=http%3A%2F%2Fwww.meelive.cn%2Fticker%2Finvoke.html&client_id=3414846017&appkey62=5vkkFz&state=&from=&offcialMobile=true&uid=” + uid + “&url=&verifyToken=” + verifyToken + “&visible=0&version=&sso_type=”, “https://open.weibo.cn/oauth2/authorize”, , , , Location, , , , , “*/*”))
    .如果真 (Location ≠ “” 或 ret ≠ “”)
        跳出循环 ()
    .如果真结束
    Sleep (3000)  ' 访问超时延时3秒再访问
.计次循环尾 ()
返回 (Location)

.子程序 get_uid_sid, loginlist, 公开
.参数 uid, 文本型
.参数 access_token, 文本型
.局部变量 expire_time, 文本型
.局部变量 ret, 文本型
.局部变量 body, 文本型
.局部变量 r, loginlist
.局部变量 tokentime, 文本型
.局部变量 send, 文本型
.局部变量 sec, 文本型
.局部变量 temptoken, 文本型
.局部变量 status, 整数型
.局部变量 最新token, 文本型
.局部变量 expire, 整数型
.局部变量 加密密钥, 文本型

expire_time = 时间_到文本 (增减时间 (取现行时间 (), 8, 2602935), 1)
ret = rsadecode (“30820122300D06092A864886F70D01010105000382010F003082010A02820101009A36736C33DA3BDB40EEA30CA0864B13B2590E968C7BD994DDAD5A013CFE3268B53CCCDF99D390426B0A8A9224374E62F49C013F76D89CD4021C3E8BFF3B0340E70DAF155DCAD6B58E7F99D8BA9F3A3083F6D9BB9CDDFA065A694A13A79682813B9E39F44ABAB53E7B76333175BCDE079ED80EE3386C0D4550D9634914A618CDDE726FB03F135CDE36AD1B83D5B79E1F056AD66F9DB12FB9C08FAA0139ED60D78C6B76FEF47B8AEE4E423A53C71F5CC9BA19847B2B0286C46A07CE70466A59182579F940FA4A2120CB22AC0D625FE290ED2AA09BC5960ED000E4570C658AF9122110F8B79522C67DFE5F66AAA1B4E3A85B9BECD1D16B01AECDED190F1D7BC4FD0203010001”, uid + “#” + expire_time + “#3000000000006550”)
ret = 字节集_到十六进制 (编码_BASE64解码 (编码_URL解码 (ret), 真))
body = “{'secret':'” + ret + “','platform':'weibo','openid':'” + uid + “','expire_time':'” + expire_time + “','access_token':'” + access_token + “'}”
body = 子文本替换 (body, “'”, #引号, , , 真)
' r.ua = 取随机型号 ()
r.ua = “XiaomiMIPAD2”
r.devi = 取随机数字 (15)
r.imsi = 取随机数字 (15)
r.imei = r.devi
r.icc = 取随机数字 (10) + 取文本右边 (r.imsi, 10)
r.conn = 取随机网络 ()
r.vv = “1.0.3-201607071705.android”
r.aid = 字节集_到十六进制 (到字节集 (取随机字母 (8)))
r.osversion = 取安卓版本 ()
ret = post访问 (“/user/account/logins”, “0”, “/user/account/logins?lc=3000000000006550&cv=IK” + _启动窗口.版本号编辑框.内容 + “_Android&cc=GF10000&ua=” + r.ua + “&uid=0&sid=&devi=” + r.devi + “&imsi=” + r.imsi + “&imei=” + r.imei + “&icc=” + r.icc + “&conn=” + r.conn + “&vv=” + r.vv + “&aid=” + r.aid + “&osversion=” + r.osversion + “&proto=4”, body, “1464340412”, “Y6SXFD65UNU7CamXukorec2EzNw=”)
调试输出 (ret)
r.session = 取中间 (ret, “session” + #引号 + “:” + #引号, #引号)
r.uid = 取中间 (ret, “uid” + #引号 + “:”, “,”)
.如果真 (r.uid = “”)
    r.msg = 取中间 (ret, “error_msg” + #引号 + “:” + #引号, #引号)
.如果真结束

到文本 (GET (“http://service.inke.com/push/uploadreg?lc=3000000000006550&cv=IK” + _启动窗口.版本号编辑框.内容 + “_Android&cc=GF10000&ua=” + r.ua + “&uid=” + r.uid + “&sid=” + r.session + “&devi=” + r.devi + “&imsi=” + r.imsi + “&imei=” + r.imei + “&icc=” + r.icc + “&conn=” + r.conn + “&vv=” + r.vv + “&aid=” + r.aid + “&osversion=” + r.osversion + “&proto=4&type=1&cid=”))

ret = UTF8转GBK (GET (“http://service.ingkee.com/api/message/get?lc=3000000000006550&cv=IK” + _启动窗口.版本号编辑框.内容 + “_Android&cc=GF10000&ua=” + r.ua + “&uid=” + r.uid + “&sid=” + r.session + “&devi=” + r.devi + “&imsi=” + r.imsi + “&imei=” + r.imei + “&icc=” + r.icc + “&conn=” + r.conn + “&vv=” + r.vv + “&aid=” + r.aid + “&osversion=” + r.osversion + “&proto=4&count=50&key=0”))
tokentime = 取中间 (ret, “system_time” + #引号 + “:” + #引号, #引号)


sec = gettoken_sec (r.uid, r.session, 文本_URL译码 (r.ua), tokentime)
send = “{'time':” + tokentime + “,'sec':'” + sec + “'}”
send = 子文本替换 (send, “'”, #引号, , , 真)

ret = 到文本 (WinHttp通用 (“http://service.ingkee.com/user/account/token?lc=3000000000006550&cv=IK” + _启动窗口.版本号编辑框.内容 + “_Android&cc=GF10000&ua=” + r.ua + “&uid=” + r.uid + “&sid=” + r.session + “&devi=” + r.devi + “&imsi=” + r.imsi + “&imei=” + r.imei + “&icc=” + r.icc + “&conn=” + r.conn + “&vv=” + r.vv + “&aid=” + r.aid + “&osversion=” + r.osversion + “&proto=4”, “POST”, send))

temptoken = 取中间 (ret, “{” + #引号 + “token” + #引号 + “: ” + #引号, #引号)
expire = 到整数 (取中间 (ret, #引号 + “expire” + #引号 + “: ”, “,”))

' 加密密钥 = 到文本 (token_encode (tohex (temptoken), “ert567tw”))
调试输出 (temptoken)
加密密钥 = to_ebase (tohex (temptoken))
调试输出 (加密密钥)
加密密钥 = 到文本 (RC4 (BASE64解码 (加密密钥), “3a2e03cf”))
调试输出 (加密密钥)



ret = post访问 (“/user/account/logins”, “0”, “/user/account/logins?lc=3000000000006550&cv=IK” + _启动窗口.版本号编辑框.内容 + “_Android&cc=GF10000&ua=” + r.ua + “&uid=0&sid=&devi=” + r.devi + “&imsi=” + r.imsi + “&imei=” + r.imei + “&icc=” + r.icc + “&conn=” + r.conn + “&vv=” + r.vv + “&aid=” + r.aid + “&osversion=” + r.osversion + “&proto=4”, body, tokentime, 加密密钥)

调试输出 (ret)
r.session = 取中间 (ret, “session” + #引号 + “:” + #引号, #引号)
r.uid = 取中间 (ret, “uid” + #引号 + “:”, “,”)
.如果真 (r.uid = “”)
    r.msg = 取中间 (ret, “error_msg” + #引号 + “:” + #引号, #引号)
.如果真结束

到文本 (GET (“http://service.inke.com/push/uploadreg?lc=3000000000006550&cv=IK” + _启动窗口.版本号编辑框.内容 + “_Android&cc=GF10000&ua=” + r.ua + “&uid=” + r.uid + “&sid=” + r.session + “&devi=” + r.devi + “&imsi=” + r.imsi + “&imei=” + r.imei + “&icc=” + r.icc + “&conn=” + r.conn + “&vv=” + r.vv + “&aid=” + r.aid + “&osversion=” + r.osversion + “&proto=4&type=1&cid=”))






返回 (r)

.子程序 HexToDe, 文本型
.参数 HexStr, 文本型
.局部变量 temp, 文本型
.局部变量 result, 长整数型
.局部变量 contrain, 整数型

.变量循环首 (1, 取文本长度 (HexStr), 1, contrain)
    temp = 取文本中间 (HexStr, contrain, 1)
    result = (寻找文本 (“0123456789ABCDEF”, temp, , 真) - 1) × 求次方 (16, 取文本长度 (HexStr) - contrain) + result
.变量循环尾 ()
返回 (到文本 (result))

.子程序 tohex, 字节集
.参数 str, 文本型
.局部变量 len
.局部变量 i
.局部变量 v1
.局部变量 v3
.局部变量 ss, 文本型
.局部变量 a, 整数型
.局部变量 data, 字节集

len = 取文本长度 (str) ÷ 2
data = 取空白字节集 (len)
.计次循环首 (len, i)
    ss = 取文本中间 (str, 2 × (i - 1) + 1, 2)
    a = 到整数 (HexToDe (ss))
    a = 位与 (a, 255)
    data [i] = a
.计次循环尾 ()
返回 (data)


.子程序 to_ebase, 文本型
.参数 arg9, 字节集
.局部变量 a_list, 文本型, , "0"
.局部变量 v0, 整数型
.局部变量 v1, 文本型
.局部变量 v2, 整数型
.局部变量 v3, 整数型
.局部变量 v4
.局部变量 v5, 整数型

a_list = { “A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”, “W”, “X”, “Y”, “Z”, “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, “j”, “k”, “l”, “m”, “n”, “o”, “p”, “q”, “r”, “s”, “t”, “u”, “v”, “w”, “x”, “y”, “z”, “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “+”, “/” }
v2 = 取字节集长度 (arg9)
v0 = 0
.判断循环首 (v0 < v2)
    v3 = v0 + 1
    v4 = 位与 (arg9 [v0 + 1], 255)
    .判断开始 (v3 = v2)
        v1 = v1 + a_list [右移 (v4, 2) + 1]
        v1 = v1 + a_list [左移 (位与 (v4, 3), 4) + 1]
        v1 = v1 + “==”
    .默认
        v5 = v3 + 1
        v3 = 位与 (arg9 [v3 + 1], 255)
        .判断开始 (v5 = v2)
            v1 = v1 + a_list [右移 (v4, 2) + 1]
            v1 = v1 + a_list [位或 (左移 (位与 (v4, 3), 4), 右移 (位与 (v3, 240), 4)) + 1]
            v1 = v1 + a_list [左移 (位与 (v4, 3), 2) + 1]
            v1 = v1 + “=”
        .默认
            v0 = v5 + 1
            v5 = 位与 (arg9 [v5 + 1], 255)
            v1 = v1 + a_list [右移 (v4, 2) + 1]
            v1 = v1 + a_list [位或 (左移 (位与 (v4, 3), 4), 右移 (位与 (v3, 240), 4)) + 1]
            v1 = v1 + a_list [位或 (左移 (位与 (v3, 15), 2), 右移 (位与 (v5, 192), 6)) + 1]
            v1 = v1 + a_list [位与 (v5, 63) + 1]
            到循环尾 ()
        .判断结束

    .判断结束
    跳出循环 ()
.判断循环尾 ()
返回 (v1)

.子程序 gettoken_sec, 文本型, , /user/account/token 用
.参数 uid, 文本型, , 102963769#20cenxoTa23e9tM6Qi0w4J56Ui2hq2chahGaOTNM29mEVwOjerEN#samsungGT-P5210#1464280061
.参数 session, 文本型
.参数 ua, 文本型
.参数 time, 文本型
.局部变量 ret, 文本型
.局部变量 send, 文本型

ret = uid + “#” + session + “#” + ua + “#” + time
返回 (密_md5 (到字节集 (ret), , 真))

.子程序 newpost组包, 字节集
.参数 连接值, 文本型
.参数 POST, 文本型
.参数 time, 文本型, , 1464265813
.参数 nonce, 文本型, , 1464266710
.参数 sec, 文本型, , 29af83cea9b70031d8a8cb70ae24bf61af759a1467a360ee498d675cca7cf5be95f8bc0703f0e90f
.局部变量 str, 文本型

str = “POST ” + 连接值 + “ HTTP/1.1” + #换行符
str = str + “x-ik-time: ” + time + #换行符
str = str + “x-ik-nonce: ” + nonce + #换行符
str = str + “x-ik-sec: ” + sec + #换行符
str = str + “Content-Type: text/plain” + #换行符
str = str + “Content-Length: ” + 到文本 (取文本长度 (POST)) + #换行符
str = str + “Host: service.ingkee.com” + #换行符
str = str + “Connection: Keep-Alive” + #换行符
str = str + “Cookie: aliyungf_tc=AQAAAFVrh3udFwYAI/Q0bidLiYsVP5K5” + #换行符
str = str + “Cookie2: $Version=1” + #换行符 + #换行符
' str = str + “Accept-Encoding: gzip” + #换行符 + #换行符
str = str + POST
返回 (到字节集 (str))

.子程序 newGET组包, 字节集
.参数 连接值, 文本型
.参数 time, 文本型, , 1464265813
.参数 nonce, 文本型, , 1464266710
.参数 sec, 文本型, , 29af83cea9b70031d8a8cb70ae24bf61af759a1467a360ee498d675cca7cf5be95f8bc0703f0e90f
.局部变量 str, 文本型

str = “GET ” + 连接值 + “ HTTP/1.1” + #换行符
str = str + “x-ik-time: ” + time + #换行符
str = str + “x-ik-nonce: ” + nonce + #换行符
str = str + “x-ik-sec: ” + sec + #换行符
str = str + “Content-Length: 0” + #换行符
str = str + “Host: service.ingkee.com” + #换行符
str = str + “Connection: Keep-Alive” + #换行符
str = str + “Cookie2: $Version=1” + #换行符
str = str + “Accept-Encoding: gzip” + #换行符 + #换行符
返回 (到字节集 (str))

.子程序 post访问, 文本型
.参数 api, 文本型, , 如 /api/redpacket/open
.参数 uid, 文本型, , 用户id 102963769
.参数 url, 文本型, , 完整的访问地址不包含域名
.参数 post, 文本型
.参数 strttime, 文本型, , 获取token的时间 1464340412
.参数 hash, 文本型, , 加密密钥 Y6SXFD65UNU7CamXukorec2EzNw=
.局部变量 time, 文本型
.局部变量 packsend, 字节集
.局部变量 sec, 文本型
.局部变量 网络客户端, 网络客户端
.局部变量 ret, 文本型
.局部变量 是否成功, 逻辑型
.局部变量 rs, 字节集
.局部变量 接受字节集, 字节集

time = 取10位时间戳 ()
.如果真 (网络客户端.连接 (域名取IP (“service.ingkee.com”), 80))
    sec = 到小写 (字节集到十六进制文本_dtcser (RC4 (到字节集 (api + “#” + uid + “#” + time), hash)))
    packsend = newpost组包 (url, post, strttime, time, sec)
    .如果真 (网络客户端.发送 (packsend, 5000))
        .判断循环首 (真)
            rs = 网络客户端.接收 (5000, )
            .如果真 (rs = {  })
                跳出循环 ()
            .如果真结束
            接受字节集 = 接受字节集 + rs
            Sleep (20)
        .判断循环尾 ()
        调试输出 (接受字节集)
    .如果真结束
    网络客户端.断开 ()
.如果真结束
返回 (到文本 (接受字节集))

.子程序 RC4, 字节集
.参数 字节集数据, 字节集
.参数 密码文本, 文本型
.局部变量 S, 字节型, , "256"
.局部变量 K, 字节型, , "256"
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 temp, 字节型, , , 交换字节用
.局部变量 Y, 整数型
.局部变量 Outp, 字节集
.局部变量 x, 整数型
.局部变量 t, 整数型
.局部变量 密码长度, 整数型

.计次循环首 (256, i)
    S [i] = i - 1
.计次循环尾 ()
j = 1
密码长度 = 取文本长度 (密码文本)
.计次循环首 (256, i)
    .如果真 (j > 密码长度)
        j = 1  ' 重复取
    .如果真结束
    K [i] = 取代码 (取文本中间 (密码文本, j, 1), 1)
    j = j + 1
    ' 本源码来自易语言资源网(www.5A5X.com)
.计次循环尾 ()
j = 0
.计次循环首 (256, i)
    j = (j + S [i] + K [i]) % 256
    temp = S [i]  ' 交换字节
    S [i] = S [j + 1]
    S [j + 1] = temp
.计次循环尾 ()
i = 0
j = 0
.计次循环首 (取字节集长度 (字节集数据), x)
    i = (i + 1) % 256
    j = (j + S [i + 1]) % 256
    temp = S [i + 1]  ' 交换字节
    S [i + 1] = S [j + 1]
    S [j + 1] = temp
    t = (S [i + 1] + S [j + 1] % 256) % 256
    Y = S [t + 1]  ' 注意要+1
    ' 本源码来自易语言资源网(www.5A5X.com)
    Outp = Outp + 到字节集 (到字节 (位异或 (字节集数据 [x], Y)))
.计次循环尾 ()
返回 (Outp)

.子程序 GET访问, 文本型
.参数 api, 文本型, , 如 /api/redpacket/open
.参数 uid, 文本型, , 用户id 102963769
.参数 url, 文本型, , 完整的访问地址不包含域名
.参数 strttime, 文本型, , 获取token的时间 1464340412
.参数 hash, 文本型, , 加密密钥 Y6SXFD65UNU7CamXukorec2EzNw=
.局部变量 time, 文本型
.局部变量 packsend, 字节集
.局部变量 sec, 文本型
.局部变量 网络客户端, 网络客户端
.局部变量 ret, 文本型

time = 取10位时间戳 ()
.如果真 (网络客户端.连接 (域名取IP (“service.ingkee.com”), 80))
    sec = 到小写 (字节集到十六进制文本_dtcser (RC4 (到字节集 (api + “#” + uid + “#” + time), hash)))
    packsend = newGET组包 (url, strttime, time, sec)
    .如果真 (网络客户端.发送 (packsend, 5000))
        ret = 到文本 (网络客户端.接收 (5000, ))
        网络客户端.断开 ()
    .如果真结束

.如果真结束
返回 (ret)

爱仿站的中年人
回复

使用道具 举报

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

本版积分规则

|手机版|码农集营 ( ) 深圳龙岗交友群

GMT+8, 2018-11-7 18:27 , Processed in 0.098621 second(s), 22 queries .

Powered by 码农集营 X3.4

快速回复 返回顶部 返回列表