2. libt2u android API 接口说明

目录

  • 包名: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 服务器密钥,开放平台无密钥,传入""即可

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();
  • 接口说明 退出并释放资源。在整个应用退出时调用一次即可。