1. libt2usvr API 接口说明
调用流程
注:如果是 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
#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();
}