### 服务器交互函数

#### 内容

- 服务器交互函数简介
- ConnectServer
- LoginServer
- DefaultConnectAndLogin
- INI文件配置登陆信息
- SendExecuteAndWait
- SendExecute
- 实时行情订阅SendExecute
- 异步回调函数以及实时订阅系统参数说明
- 服务器返回信息类型
- EndExecute
- CheckLogined
- CheckConnected
- LoginedUser
- RemoteAddress
- RemotePort
- DisconnectServer
- TSTaskAdmin
- SetComputeService
- GetComputebitsOption
- SetComputebitsOption
- GetComputeService

#### 服务器交互函数简介

服务器交互函数可以让本地执行的TSL语言与金融分析.NET服务器进行交互，并递交计算请求到服务器运算。

#### ConnectServer

范例 http模式代理登陆

```tsl
cTS := ConnectServer("tsl.tinysoft.com.cn", 443, array("Address":"192.168.0.250", "Port":808, "AuthMode":0));
lg := LoginServer("TSUser", "UserPass", msg);
if lg = 0 then
begin
    echo "登陆成功!";
    Script := 'program TS_testFunc;
    begin
        r := 1 -  > 5;
        return r;
    end.';
    if SendExecuteAndWait(Script, getSysParams(), Result, ErrMsg) = 0 then//Execute Success
    echo tostn(Result), '\r\n';
    else echo '远端执行失败！\r\n';
    DisconnectServer();
end
else echo "登陆失败，报错：(", cTS, ",", msg, ")\r\n";
```

打印"登陆成功!"则说明连接成功。参考DefaultConnectAndLogin LoginServer

#### LoginServer

参考DefaultConnectAndLogin ConnectServer

#### DefaultConnectAndLogin

参考ConnectServer LoginServer

#### INI文件配置登陆信息

第一步：在plugin目录下新建ini文件，文件全名为tslclient.ini

注：客户端用户，该plugin目录在天软安装目录下，一般路径为：C:\Program
Files\Tinysoft\Analyse.NET\Plugin

其它用户，需要找到插件包中的plugin目录下添加。

第二步：在tslclient.ini添加以下内容：

```ini
[TSLClient Config]
;调用是登陆的别名
[test]
;本地许可
Permit=local
;用户名
LoginName=
;密码
LoginPass=
;服务器 地址
Address=tsl.tinysoft.com.cn
;端口
Port=443
;---以下为代理服务器
;代理服务器端口
ProxyPort=
;代理服务器地址
ProxyAddress=
;代理身份验证用户名
ProxyUser=
;验证密码
ProxyPass=
;代理模式 http模式设置为0， SOCKS5模式设置为5
ProxyAuthMode=
```

其中，[test]中的test是用户自定义的别名，可用户自己设定,区分大小写，在登陆时调用。

其余项用户需要根据自己的实际情况填写。

同一个ini文档中，可以配置多个配置信息，使用时通过别名进行识别。

调用比如：cTS:=DefaultConnectAndLogin(‘test’,msg)

#### SendExecuteAndWait

参考实时行情订阅。

#### SendExecute

参考实时行情订阅 异步回调函数以及实时订阅系统参数说明 服务器返回信息类型。

#### 实时行情订阅SendExecute

参考异步回调函数以及实时订阅系统参数说明 服务器返回信息类型

#### 异步回调函数以及实时订阅系统参数说明

| 系统参数名 | 类型           | 说明                           |
| ---------- | -------------- | ------------------------------ |
| channel    | 整数           | 通道ID,和SendExecute返回值一致 |
| recvtype   | 整数           | 参阅：服务器返回信息类型       |
| errno      | 整数           | 错误号,非0错误                 |
| errmsg     | 字符串         | 错误信息                       |
| result     | 订阅为数组类型 | 结果集，订阅为推送类型         |

#### 服务器返回信息类型

| 返回类型         | 值     | 说明 |
| ---------------- | ------ | ---- |
| 执行函数返回     | 0x0201 |      |
| 执行委托函数返回 | 0x0301 |      |
| ECHO返回         | 0x0401 |      |
| 客户请求返回     | 0x0402 |      |
| 实时订阅返回     | 0x0501 |      |
| 错误信息返回     | 0      |      |

#### EndExecute

#### CheckLogined

#### CheckConnected

#### LoginedUser

#### RemoteAddress

范例

```tsl
####python交互范例，python代码
import sys
sys.path.append('D:\\tinysoft\\Analyse.NET\\')
import TSLPy3 as ts
data := ts.DefaultConnectAndLogin("test")
print(ts.Logined())
print("远程登录地址", ts.RemoteAddress())
print("服务器设置:", ts.GetService())
ts.SetComputeBitsOption(64) #设置计算单位
print("计算位数设置:", ts.GetComputeBitsOption())
ts.Disconnect() #断开连接
```

结果

#### RemotePort

#### DisconnectServer

- 服务器交互函数简介
- ConnectServer
- LoginServer
- DefaultConnectAndLogin
- INI文件配置登陆信息
- SendExecuteAndWait
- SendExecute
- 实时行情订阅SendExecute
- 异步回调函数以及实时订阅系统参数说明
- 服务器返回信息类型
- EndExecute
- CheckLogined
- CheckConnected
- LoginedUser
- RemoteAddress
- RemotePort
- DisconnectServer
- TSTaskAdmin
- SetComputeService
- GetComputebitsOption
- SetComputebitsOption
- GetComputeService

#### TSTaskAdmin

范例

```tsl
rdo2 TSTaskAdmin("oa", CmdReturn, BroadCastMsg, ErrMsg, 3000, 1000);
return CmdReturn;
```

#### SetComputeService

#### GetComputebitsOption

#### SetComputebitsOption

#### GetComputeService
