A:在使用第三方交互接口连接天软服务器时,当登陆连接不上服务器,且报服务器没有答复或没有反应的错误时,可轮动所有天软服务器地址进行连接,保证正常登陆后再继续执行。
天软服务器地址:FAQ:
Q:天软服务器地址
一般登陆时,报错如下,则有可能是线路故障原因引起,此时可以选择其它地址进行连接:
下面主要以python的两种常用交互方式(TSLPy与pyTSL)进行举例实现,用户可根据个人需求进行参考。
TSLPy模块实现多条线路的轮动
接口使用详情:FAQ:
2019-05-08-应用专题-第三方交互07:天软平台和PYTHON的交互
通过连接服务器登陆
配置
1、下载已封装好的tslTSLPy文件,附件:
附件:tslTSLPy.py
2、将文件放在指定位置,并按实际情况修改加载TSLPy模块的天软安装路径
3、其他文件import tslTSLPy使用即可
tslTSLPy代码详情:
import sys
sys.path.append("C:\\Program Files\\Tinysoft\\AnalyseNG.NET")
import TSLPy3 as ts
def tsServerList():
serList=[
{"SerName": "深圳新节点", "IP": "sznew.tinysoft.com.cn", "Port": 4433},
{"SerName": "武汉服务器", "IP": "wh.tinysoft.com.cn", "Port": 443},
{"SerName": "深圳服务器", "IP": "tsl.tinysoft.com.cn", "Port": 443},
{"SerName": "深圳服务器-网通", "IP": "211.162.125.187", "Port": 443},
{"SerName": "深圳服务器-电信", "IP": "220.112.1.175", "Port": 443},
{"SerName": "深圳服务器-移动", "IP": "183.239.132.134", "Port": 443},
{"SerName": "深圳新节点-联通", "IP": "112.95.140.61", "Port": 4433},
{"SerName": "深圳新节点-电信", "IP": "119.147.24.199", "Port": 4433},
{"SerName": "深圳新节点-移动", "IP": "120.232.255.75", "Port": 4433}]
return serList
def tsServerLogin(user,password,host=None,port=None,ifLD=None):
c=ts.Logined()#登录状态
if c==1 :
print("天软服务器已登录")
if ifLD in (None,0): return ts
else:
ts.Disconnect()
print("断开登录,按指定地址连接登录天软服务器")
lj =ts.ConnectServer(host,port) # 连接服务器
if lj != 0 :
# 轮动天软服务器地址
servers = tsServerList()
for server in servers:
connect =ts.ConnectServer(server["IP"],server["Port"])
if connect == 0:
print("天软服务器连接成功,当前服务器:",server["SerName"])
break
if connect != 0:
print("天软服务器连接失败,当前服务器:", server["SerName"])
sys.exit()
else:
print("天软服务器连接成功,当前为指定服务器:", host)
dl = ts.LoginServer(user, password) # 登陆账号
if dl[0] == 0:
print("天软服务器登陆成功")
else:
print("天软服务器登陆失败", dl[0], dl[1].decode("gbk"))
return ts
tslTSLPy模块说明:
根据已有的方法封装登陆天软服务器模型:
tsServerLogin(user,password,host=None,port=None,ifLD=None)
功能说明:
1.指定ip地址及端口正常服务时正常登录,否则轮动所有的天软服务器;
2.调用时若指定ip与port,则优化尝试指定地址连接,否则使用默认地址优先方式。
3.ifLD表示当服务器已经登陆时是否需要断开连接再登陆,默认不再登录。
当指定ip及端口时,会先断开连接再登录指定服务器,
当未指定ip及端口时,不再重复登陆
调用范例
import tslTSLPy as tsl
user = "user" # 天软平台账户
password = "password" #天软账号密码
host ="tsl.tinysoft.com.cn" # 地址
port = 443 # 端口
ts=tsl.tsServerLogin(user,password)#使用配置好的地址登陆
# ts=tsl.tsServerLogin(user,password,host,port)#或指定服务器及端口
# 执行交互代码
tsstr = 'return "TSL server OK!";'
data = ts.RemoteExecute(tsstr, {})
print(data)
ts.Disconnect() # 断开登陆
执行结果:
通过配置文件登陆
使用前需要在配置文件中新增所有天软服务器地址的配置信息
python代码:
import sys
sys.path.append("C:\\Program Files\\Tinysoft\\Analyse.NET")
import TSLPy3 as ts
dl=ts.DefaultConnectAndLogin("tsl")#登陆天软服务器
if dl[0]>-3 or dl[0]<-13:
# 配置文件中配置多个天软服务器
servers = ["unicom","telecom","mobile","wh","newunicom","newtelecom","newmobile"]
for server in servers :
dl=ts.DefaultConnectAndLogin(server)
if dl[0] == 0 or (dl[0]<=-3 and dl[0]>=-13):
print("当前服务器:",server)
break
if dl[0]==0 :
print("登陆成功")
# 执行交互代码
tsstr = '''return 1;'''
data = ts.RemoteExecute(tsstr, {})
print(data)
ts.Disconnect() # 断开登陆
else :
print("登陆失败",dl[0],dl[1].decode("gbk"))
执行结果:
pyTSL模块实现多条线路的轮动登陆
接口使用详情:FAQ:
天软pyTSL接口
配置
1、下载已封装好的tslpyTSL.py文件,附件:
附件:tslpyTSL.py
2、将文件放在指定位置import调用即可
tslpyTSL代码详情:
import pyTSL
def tsServerList():
serList=[
{"SerName": "深圳新节点", "IP": "sznew.tinysoft.com.cn", "Port": 4433},
{"SerName": "武汉服务器", "IP": "wh.tinysoft.com.cn", "Port": 443},
{"SerName": "深圳服务器", "IP": "tsl.tinysoft.com.cn", "Port": 443},
{"SerName": "深圳服务器-网通", "IP": "211.162.125.187", "Port": 443},
{"SerName": "深圳服务器-电信", "IP": "220.112.1.175", "Port": 443},
{"SerName": "深圳服务器-移动", "IP": "183.239.132.134", "Port": 443},
{"SerName": "深圳新节点-联通", "IP": "112.95.140.61", "Port": 4433},
{"SerName": "深圳新节点-电信", "IP": "119.147.24.199", "Port": 4433},
{"SerName": "深圳新节点-移动", "IP": "120.232.255.75", "Port": 4433}]
return serList
def tsClient(user,password,ip=None,port=None):
if isinstance(ip,str) :
c=pyTSL.Client(user,password,ip,port)
if c.login() != 1 :
if c.last_error()[0]>0:
return tsClient(user,password)
else :
print("登陆失败:",c.login(),c.last_error())
return c
else :
print("天软登陆成功,当前为指定服务器:",ip)
return c
else :
# 轮动天软服务器地址
servers=tsServerList()
for server in servers :
c=pyTSL.Client(user,password,server["IP"],server["Port"])
if c.login()==1 :
print("天软登陆成功,当前服务器:",server["SerName"])
return c
elif c.last_error()[0]<1 :
print("登陆失败:",c.login(),c.last_error())
break
return c
tslpyTSL模块说明
根据已有的方法封装登陆天软服务器模型:
1.
tsClient(user,password,ip,port):
功能说明:指定ip地址及端口正常服务时正常登录,否则轮动所有的天软服务器。
调用时若指定ip与port,则优化尝试指定地址连接,否则使用默认地址优先方式。
调用范例
python代码:
import tslpyTSL
user = "user" # 天软平台账户
password = "password" #天软账号密码
host ="tsl.tinysoft.com.cn" # 地址
port = 443 # 端口
c=tslpyTSL.tsClient(user,password) #使用配置好的地址登陆
#c=tslpyTSL.tsClient(user,password,host,port) ##或指定服务器及端口
tsstr = '''return "TSL server OK!";'''
r=c.exec(tsstr)
print(r.value())
c.logout()
执行结果: