12.3.6 UDP组播穿透路由器

2022-01-12 13:56:05 浏览数 (1)

12.3.6 UDP组播穿透路由器

局域网内的两台机器如果隔有路由器,那么这两台机器之间不能进行广播通信,但是我们可以换成组播的通信的方式,达到相互通信的效果。

服务器端

代码语言:javascript复制
QUdpSocket udp_socket;  
udp_socket.bind(QHostAddress::Any, udp_listen_port, QUdpSocket::ReuseAddressHint);  
QHostAddress mcast_addr("224.0.0.17");  
udp_socket.setSocketOption(QAbstractSocket::MulticastLoopbackOption, 0);//禁止本机接收  
udp_socket.joinMulticastGroup(mcast_addr);//这句是关键,加入组播地址  

客户端

代码语言:javascript复制
QHostAddress mcast_addr("224.0.0.17");//组播地址与服务器相同  
QUdpSocket udp_socket;  
udp_socket.writeDatagram(datagram, mcast_addr, UDP_SEND_PORT);//向服务器发送数据(UDP_SEND_PORT与服务器的监听端口相同)  

0 人点赞