2. libt2u android API 接口说明
目录
- 2.1. Init
- 2.2. SetPortRange
- 2.3. Status
- 2.4. Query
- 2.5 AddPort / AddUdpPort
- 2.6. AddPortV3 / AddUdpPortV3
- 2.7. PortStatus / UdpPortStatus
- 2.8. PortStatusEx / UdpPortStatusEx
- 2.9. DelPort / DelUdpPort
- 2.10. Exit
- 包名:com.vveye
- 类名:T2u
2.1. Init
public native static void Init(String svraddr, char svrport, String svrkey);
接口说明
初始化,整个应用程序在开启时调用一次本接口即可。参数说明
- svraddr:P2P 服务器地址,使用域名,开放平台域名为
nat.vveye.net
- svrport:P2P 服务器端口,默认为 8000
- svrkey:P2P 服务器密钥,开放平台无密钥,传入""即可
- svraddr:P2P 服务器地址,使用域名,开放平台域名为
2.2. SetPortRange
public native static void SetPortRange(char minport, char maxport);
接口说明
设置 P2P 端口范围。通常不需要调用此函数,如果客户端所在网络环境有 UDP 端口范围限制,则调用这个函数,以保证网络可以正常使用。参数说明
- minport: 最小端口号
- maxport: 最大端口号
2.3. Status
public native static int Status();
接口说明
查询客户端与服务器的连接状态。返回值
- 1: 与服务器连接,状态正常
- 0: 未连接服务器
- -1: SDK未初始化
- -2: 服务器密钥无效
2.4. Query
接口说明
查询指定设备的在线状态。参数说明
- uuid:设备序列号
返回值
- 1: 设备在线
- 0: 设备不在线
- -1: 查询失败
2.5 AddPort / AddUdpPort
public native static int AddPort(String uuid, char remote_port, char local_port);
public native static int AddUdpPort(String uuid, char remote_port, char local_port);
接口说明
这两个接口函数的作用是将远端设备的端口映射到本地,前者映射 TCP 服务端口,后者映射 UDP 服务端口,其工作原理和调用方法相同。参数说明
- uuid: 设备序列号
- remote_port:要映射的设备端服务端口
- local_port:映射到本地的端口,可传入 0 表示由接口函数随机分配端口(建议使用这种方式,以防止发生端口占用),随机分配的端口在返回值中返回。
返回值
- > 0:映射到本地的端口号
- -1:创建映射端口失败,本地端口被占用
2.6. AddPortV3 / AddUdpPortV3
public native static int AddPortV3(String uuid, String passwd, String remote_ip, char remote_port, char local_port);
public native static int AddUdpPortV3(String uuid, String passwd, String remote_ip, char remote_port, char local_port);
接口说明
这两个接口函数是 AddPort/AddUdpPort 的升级版,如果设备端没有 P2P 密码,使用 AddPort/AddUdpPort 即可。此接口用于将远端设备的端口映射到本地,前者映射 TCP 服务端口,后者映射 UDP 服务端口,其工作原理和调用方法相同。参数说明
- uuid: 设备序列号
- passwd: 设备端 P2P 密码
- remote_ip: 设备端 IP 地址,由于通常连接的是设备端本身,因此传入"127.0.0.1"即可,不需要指定实际的 IP 地址。
- remote_port: 要映射的设备端服务端口
- local_port: 映射到本地的端口,可传入 0 表示由接口函数随机分配端口(建议使用这种方式,以防止发生端口占用),随机分配的端口在返回值中返回。
返回值
- > 0:映射到本地的端口号
- -1:创建映射端口失败,本地端口被占用
2.7. PortStatus / UdpPortStatus
public native static int PortStatus(char port);
public native static int UdpPortStatus(char port);
接口说明
查询映射端口是否已经与远端设备连通。参数说明
- port:已映射的本地端口号,即 AddPort 系列函数的返回值
返回值
- 1: 已连通
- 0: 未连通
- -1: 设备uuid不存在
- -2: P2P连接失败,等待30秒后自动重连
- -3: P2P连接中断,等待30秒后自动重连
- -4: 对方离线,等待30秒后自动重连
- -5: 设备有密码,密码认证失败
2.8. PortStatusEx / UdpPortStatusEx
public native static int PortStatusEx(char port, byte buff[], int buffsize);
public native static int UdpPortStatusEx(char port, byte buff[], int buffsize);
接口说明
查询映射端口是否已经与远端设备连通,并返回 P2P 连接的详细信息。参数说明
- port:已映射的本地端口号,即 AddPort 系列函数的返回值
- buff: 用于保存 P2P 连接信息的数组,其保存的内容是一个JSON文本
- buffsize: buff的大小,字节数。
buff中JSON的格式如下:
- ip:字符串,表示设备端在互联网上的映射地址。
- port:整型数,设备端在互联网上的映射端口。
- proxy:整型数,是否通过中继代理进行转发,1=是,0=否
- remote_nattype:整型数,设备端所在网络环境的网关类型
- local_nattype:整型数,客户端所在网络环境的网关类型
Nat类型含义如下:
- -2:检测失败
- -1:正在检测
- 0:公网IP
- 1:Full Cone NAT
- 2:Restricted Cone NAT
- 3:Port Restricted Cone NAT
- 4:Symmetric NAT
例:
{
"ip": "220.110.222.121",
"port": 12034,
"proxy": 0,
"remote_nattype": 1,
"local_nattype": 2
}
- 返回值
- 1: 已连通
- 0: 未连通
- -1: 设备uuid不存在
- -2: P2P连接失败,等待30秒后自动重连
- -3: P2P连接中断,等待30秒后自动重连
- -4: 对方离线,等待30秒后自动重连
- -5: 设备有密码,密码认证失败
2.9. DelPort / DelUdpPort
public native static void DelPort(char port);
public native static void DelUdpPort(char port);
接口说明
删除已创建的 P2P 连接,即删除已映射的本地端口。前者对应 AddPort / AddPortV3 ,后者对应 AddUdpPort / AddUdpPortV3参数说明
- port:已映射的本地端口号,即 AddPort 系列函数的返回值
2.10. Exit
public native static void Exit();
- 接口说明 退出并释放资源。在整个应用退出时调用一次即可。