多层路由和多网卡环境下UDP组播通信的问题记录

作者在调试UDP组播通信时,本地搭建局域网进行测试,数据收发都正常。但是部署到设备计算机上之后,与数据中心通信时,数据中心始终无法收到设备计算机发送的数据。通过查找资料,最后明确主要有2个问题,记录如下:
1)设备计算机通过多层路由与数据中心通信,在多层路由的网络环境下UDP通信需要设置TTL参数setSocketOption(QAbstractSocket::MulticastTtlOption,128),否则在经过一次路由之后,数据包就会被丢弃;
2)设备计算机有多张网卡(开发用的计算机只有1张网卡),多网卡时为了能够建立正确的组播路由,必须先设置组播网卡setMulticastInterface,再加入组播组joinMulticastGroup。

你可能感兴趣的:(学习,udp,网络,网络协议)