1. libt2usvr API 接口说明
- 1.1. t2u_svr_init
- 1.2. t2u_svr_set_passwd
- 1.3. t2u_svr_status
- 1.4. t2u_svr_conn_stats
- 1.5. t2u_svr_exit
- 1.6. 参考实例
调用流程
t2u_svr_init ->
t2u_svr_set_passwd(如果有P2P密码的话) ->
注:如果是 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:用于保存返回信息的缓冲区大小,字节数。
- outbuff:
返回值:
当前 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();
}