通过一个tcp连接获取客户端ip和端口
在多路实况下出现某几路视频卡顿时,最好的办法是分析流数据,但抓包时同时可能抓了多路视频流,一般会先分析日志,确定哪几路流存在问题,然后通过日志里的客户端ip和端口号去找到要分析的那路流,一般情况流媒体服务器的端口是554,地址也知道,比较好寻找,而客户端的地址信息就需要通过getsockname去获取,具体代码如下:
struct sockaddr stAddr = {0};
struct sockaddr_in stAddrIn = {0};
long lNameLen = sizeof(struct sockaddr);
if(0 == getsockname(SockFd, &stAddr, (socklen_t *)&lNameLen))
{
memcpy(&stAddrIn, &stAddr, lNameLen);
printf("CurSocket[%d], ClientAddr[%s:%d].\n", SockFd, inet_ntoa(stAddrIn.sin_addr), ntohs(stAddrIn.sin_port));
}
版权声明:本文为tqs_1220原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。