目前可通过bind绑定某一块网卡接收单播报文,不过多播报文就无法收到;
如果要接收多播报文,bind不能绑定具体哪块网卡的地址,否则收不到多播报文,使用joinMulticastGroup()指定从哪块网卡接收多播报文,这样虽然可以从指定网卡接收多播报文,但同时也可以接收到来自所有网卡的单播报文;
参考了C的实现方式,也没有发现可以实现的方式,原因和qt下大致一样,有人建议用两个套接字,一个接收单播,一个接收多播,如果这样,那单播和多播的端口还得不一样,有点麻烦,好像windows下就可以实现,不论是单播还是多播都可以通过bind绑定网卡接收;
不知各位大牛有何高见?
5 个解决方案
#1
系统环境为linux,硬件环境为双网卡,当接收数据时,两块网卡都接收到一样的数据,但只是从一块网卡收,等于另一块网卡为备份数据,当正在使用的网卡出问题时,马上从另一块网卡接收数据。
#2
在windows上使用qt 5.3.1+minGW,通过bind来绑定单播/多播从指定网卡收数据成功,看来windows和linux在这方面有区别啊。
#3
自己顶一下。
#4
您好!我现在遇到相同问题,不知道你的问题是怎么解决的
#5
#1
系统环境为linux,硬件环境为双网卡,当接收数据时,两块网卡都接收到一样的数据,但只是从一块网卡收,等于另一块网卡为备份数据,当正在使用的网卡出问题时,马上从另一块网卡接收数据。
#2
在windows上使用qt 5.3.1+minGW,通过bind来绑定单播/多播从指定网卡收数据成功,看来windows和linux在这方面有区别啊。
#3
自己顶一下。
#4
您好!我现在遇到相同问题,不知道你的问题是怎么解决的