android nvr 播放器,【技术教程】如何设置Windows/Android/iOS平台H265编码视频播放器EasyPlayer-RTSP中socket选项keepalive?...
时间: 2024-02-13 11:03:27 浏览: 32
要在EasyPlayer-RTSP播放器中设置socket选项keepalive,需要按照以下步骤操作:
1. 打开EasyPlayer-RTSP工程,找到EasyPlayer-RTSP.cpp文件。
2. 在EasyPlayer-RTSP.cpp文件中找到以下代码:
```
if (connect(m_nRtspfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
{
log_printf(LOG_ERROR, "connect rtsp stream server failed! errno:%d, strerror:%s", errno, strerror(errno));
return -1;
}
```
3. 在该代码块的下面添加以下代码:
```
int keepalive = 1; // 开启keepalive属性
int keepidle = 60; // 如该连接在60秒内没有任何数据往来,则进行探测
int keepinterval = 5; // 探测时发包的时间间隔为5 秒
int keepcount = 3; // 探测尝试的次数。如果第1次探测包就收到响应了,则后2次的不再发送
setsockopt(m_nRtspfd, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepalive, sizeof(keepalive));
setsockopt(m_nRtspfd, SOL_TCP, TCP_KEEPIDLE, (void *)&keepidle, sizeof(keepidle));
setsockopt(m_nRtspfd, SOL_TCP, TCP_KEEPINTVL, (void *)&keepinterval, sizeof(keepinterval));
setsockopt(m_nRtspfd, SOL_TCP, TCP_KEEPCNT, (void *)&keepcount, sizeof(keepcount));
```
4. 保存修改并重新编译EasyPlayer-RTSP工程即可。
以上代码中的参数可以根据实际情况进行调整,如修改keepidle为120,则表示该连接在120秒内没有任何数据往来,则进行探测。更多关于socket选项keepalive的详细说明可以参考相关文档。