首页 > 其他分享 >live555最新版本修改对ipv6的支持

live555最新版本修改对ipv6的支持

时间:2023-09-08 18:35:27浏览次数:50  
标签:live555 addr ADDRESS IPV6 LIVE 版本 ipv6 NET struct


在live555官方代码中只支持IPv4, 现实环境中绝大多数项目也是IPv4, 但是用支持IPv6的EasyRTSPClient去连接海康的相机,人家早就支持IPv6了。并且现工程投标中也有部分明确需要IPv6, 所以在原IPv4基础上,动手改造支持IPv6。

那么如何支持呢?方法如下:

定义IPV4和IPV6
live_ipv4_ipv6.h

typedef enum LIVE_IPVER_ENUM
{
	LIVE_IP_VER_4	=	0,
	LIVE_IP_VER_6
}LIVE_IP_VER_ENUM;

NetAddress.hh
增加地址定义

typedef struct __LIVE_NET_ADDRESS_INADDR
{
	struct in_addr sin_addr;
	struct in6_addr sin6_addr;

	__LIVE_NET_ADDRESS_INADDR()
	{
		sin_addr.s_addr = INADDR_ANY;
		sin6_addr = in6addr_any;
	};

}LIVE_NET_ADDRESS_INADDR;

typedef struct __LIVE_NET_ADDRESS_SOCKADDR_IN
{
	struct sockaddr_in	saddr4;
	struct sockaddr_in6	saddr6;
}LIVE_NET_ADDRESS_SOCKADDR_IN;

除了void AddressString::init(struct in_addr addr)外,
将工程中所有struct in_addr 改为 LIVE_NET_ADDRESS

修改重点

在创建IPV6的socket后,需做如下设置(设置IPV6的socket只接收IPV6的数据):

int on = 1;
	if (setsockopt(newSocket, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&on, sizeof(on)) < 0)
	{
		printf("set ipv6 fail.\n");
	}

后续的处理和IPV4基本相同;


标签:live555,addr,ADDRESS,IPV6,LIVE,版本,ipv6,NET,struct
From: https://blog.51cto.com/u_16247540/7412139

相关文章

  • live555作为RTSP流媒体服务器时Server端多track而客户端仅请求一个track,当客户端关闭
    当我们使用live555作为流媒体服务器时,某个通道对应的所有客户端断开后,不能正常回调关闭。某一通道同时支持视频和音频输出,即video和audio两个trackVLC和EasyPlayer播放库来中的RTSPClient则都会请求(所以不存在问题);而某些客户端则只请求了一个track,比如video;此时再关闭......
  • live555做流媒体服务器时解决rtp over udp模式下, 客户端没有发送teardown时直接关闭
    在我们使用live555作为RTSP服务器时,客户端在rtpoverudp模式下,rtsp客户端没有发送teardown而直接断开连接时需要等待65秒才回调关闭的问题。分析问题在RTSPClientConnection中没有保存相应的session值,所以在RTSPClientConnection断开时,并没有删除相应的RTSPClientSession;解......
  • live555作为RTSP客户端对接大华的某款球机RTSP流时不能预览问题的解决方案
    我们使用live555作为RTSP客户端拉取对接大华的球机RTSP直播流时,不能正常预览,球机在客户现场,型号未知。这种情况下,我们分析了,我们使用live555已接过N多种不同的摄像机,包括大华的相机之前也接过,没有出现过这种问题.而客户现场的电脑抓包软件也有问题,不能正常工作.只能加日志打印......
  • live555 RTSPClient客户端修正多网卡多ip情况下解码器不能解码显示问题
    问题海康NVR接入正常,但接入海康解码器出不来图像;分析海康解码器是以rtpoverudp的方式进行取流;如果运行streamingServer的PC,网络设置为以下两种情况,则都可以正常上墙显示:本机仅设置一个IP,且和解码器在同一网段;本机有两个IP,如192.168.xx.xx和190.168.xx.xx,解码器网......
  • Adobe Lightroom Classic 2023(版本 12.5安装包资源)
    AdobeLightroomClassic2023(版本12.5)软件更新了,该版本新增了哪些功能呢?AdobeLightroomClassic2023激活版是一款专业的数字照片处理软件,它可以帮助摄影师对照片进行分类、编辑、调整和输出。它具有强大的图像处理功能,可以对RAW格式的照片进行处理,支持多种文件格式,包括JPEG、......
  • nvm有下载版本,切换版本成功,node -v还是切换前的版本问题解决
    是因为在下载nvm之前,电脑中的node版本已经存在了,所以需要将之前的node版本全部清楚干净!卸载node之前请node-v查看一下现在的版本,记住这个版本,切记切记!!!!!控制面板中卸载node.;卸载已安装过的NVM;没装过NVM的就仅仅卸载node去环境变量里面看一下有没有跟nvm和node相关的东西了,有的话全......
  • mac卸载与安装指定版本node
    转载自:https://blog.csdn.net/q375537943/article/details/131958222=========一、查看当前node.js版本node-v二、卸载当前node.js#这里是卸载npm的sudonpmuninstallnpm-g#这里是用来删除node创建的各种文件夹sudorm-rf/usr/local/lib/nodesudorm-rf/usr/local/l......
  • git操作修改历史版本tag标签的代码,并发布新标签
    场景:当项目已经迭代多个版本之后,突然发现旧版本1.0.1出现了紧急bug,需要及时处理;如果直接用新版本替换上去是存在极大隐患的,且时间来不及;所以需要直接在1.0.1版本的基础上去修复bug,然后发布一个新版本去更新,这样才会更加稳妥,影响范围也会最小;操作流程如下:1.列出所有标签gitt......
  • 视频监控汇聚平台EasyNVR安防视频平台新版本无法对接到EasyNVS平台并报错login error,
    安防监控系统EasyNVR视频云存储平台可实现设备接入、实时直播、录像、检索与回放、视频云存储、视频分发等视频能力服务,可覆盖全终端平台(pc、手机、平板等终端),在智慧工厂、智慧工地、智慧社区、智慧校园等场景中有大量落地应用。 有用户反馈,在使用新版本EasyNVR时,出现了无法对......
  • Altium Designer AD20 AD21 AD22版本中焊盘走线引出方式别扭的设置方法
    在学习AD22,发现他走线到焊盘总是特殊角度接入焊盘,如下图,我们想走成图1,但是总会总成图2,怎么改你也改不过来,除非你先从焊盘走一截线.图1图2 解决的方法如下:选项->System->General->右下角的Advanced,找到 Legacy.PCB.InternalGloss,把第一个value勾上,如下......