1. libt2usvr API 接口说明

调用流程

t2u_svr_init ->

t2u_svr_set_passwd(如果有P2P密码的话) ->

t2u_svr_status(重复调用直至返回1) ->

t2u_svr_conn_stats ->

t2u_svr_exit

注:如果是 Windows 系统,需要在调用 t2u_svr_init 前需要先调用 WSAStartup 函数。

1.1. t2u_svr_init

int t2u_svr_init(const char* svraddr,
                 unsigned short svrport,
                 const char* svrkey,
                 const char* uuid,
                 int threadnum);
  • 接口说明:
    用于初始化SDK,启动P2P服务。

  • 参数说明:

    • svraddr: P2P 服务器 ip 地址或域名,开放平台服务器域名:nat.vveye.net
    • svrport: P2P 服务器端口,开放平台服务器端口:8000
    • svrkey: P2P 服务器密钥,开放平台服务器无密钥
    • uuid: 设备序列号,每个设备唯一
    • threadnum: 最大线程数,推荐值10
  • 返回值:

    • 0:成功
    • -1:失败

1.2. t2u_svr_set_passwd

int t2u_svr_set_passwd(const char* passwd);
  • 接口说明:
    用于设置设备端的 P2P 密码,如果设置了密码,客户端在与该设备创建 P2P 连接时,需要提供相同的密码方能创建成功。默认时无密码。

  • 参数说明:

    • passwd: P2P 密码,小于16字节
  • 返回值:

    • 0:成功
    • -1:失败

1.3. t2u_svr_status

int t2u_svr_status();
  • 接口说明
    查询当前设备服务端的 P2P 连接状态。

  • 返回值:

    • 1:已成功注册到服务器,可以进行 P2P 连接;
    • 0:尚未注册到服务器
    • -1:未调用t2u_svr_init
    • -2:服务器密钥错误
    • -3:不正确的设备序列号

1.4. t2u_svr_conn_stats

int t2u_svr_conn_stats(char* outbuff,int buffsize);
  • 接口说明:
    查询当前已创建的多个p2p通道信息。

  • 参数说明:

    • outbuff
      用于保存返回信息的缓冲区,返回的信息是字符串,记录每个已创建的 P2P 通道的信息,每条信息占一行,用'\n'分隔,其格式为:
    • ip地址:端口|丢包率(百分比,浮点数)|上行带宽(已废弃)\n
    • buffsize:用于保存返回信息的缓冲区大小,字节数。
  • 返回值:
    当前 P2P 通道的数量。

1.5. t2u_svr_exit

void    t2u_svr_exit();
  • 接口说明: 退出 P2P 程序,释放资源。

1.6. 参考实例

#include <stdio.h>
#include "libt2usvr.h"
int main(int argc, char* argv[])
{
  int ret;
  char buff[10240];

  //初始化
  ret = t2u_svr_init("nat.vveye.net", 8000, NULL, "TEST-123456", 10);
  printf("t2u_svr_init:%d\n", ret);

  while(1)
  {
    sleep(2);
  
    ret = t2u_svr_status();
    printf("t2u_svr_status:%d\n", ret);

    if (ret != 1)//如果没有注册到服务器,则继续等待
    {
        continue;
    }

    //查询当前p2p连接状态
    ret = t2u_svr_conn_stats(buff, sizeof(buff));
    if (ret > 0)
    {
      printf("%s\n", buff);
    }
  }
  t2u_svr_exit();
}