linux下同一套接字绑定网卡接收单播/多播报文
大家好,我想在Linux下使用qt,通过一个QUdpSocket对象绑定某一块网卡,既接收单播报文,又接收多播报文。
目前可通过bind绑定某一块网卡接收单播报文,不过多播报文就无法收到;
如果要接收多播报文,bind不能绑定具体哪块网卡的地址,否则收不到多播报文,使用joinMulticastGroup()指定从哪块网卡接收多播报文,这样虽然可以从指定网卡接收多播报文,但同时也可以接收到来自所有网卡的单播报文;
参考了C的实现方式,也没有发现可以实现的方式,原因和qt下大致一样,有人建议用两个套接字,一个接收单播,一个接收多播,如果这样,那单播和多播的端口还得不一样,有点麻烦,好像windows下就可以实现,不论是单播还是多播都可以通过bind绑定网卡接收;
不知各位大牛有何高见?