单播:客户端与服务器建立一个单独的数据通道,从一台服务器送出的数据包只能到特定的客户端。
广播:向子网中所有计算机发送消息。
组播:又叫多路广播,消息从服务器发送到子网中,同时计算机也可以加入制定的组播中来接受消息。
对于发送端 QT中单播、组播、广播的写法相似 需要把地址改了就行了
udpsocket.writeDatagram(arr,QHostAddress(ip_send),port);
例如 当ip_send 是正常的IP 比如局域网内 192.168.1.112 这就是单播
当ip_send是D类地址 这就是组播
当ip_send是QHostAddress::Broadcast 这是广播
对于接收端 单播、组播、广播步骤都一样
1 创建套接字
read=new QUdpSocket(this);
2 绑定地址端口号
read->bind(port,QUdpSocket::ShareAddress);//这个是绑定某个端口
组播,广播这样绑定 bind(QHostAddress::AnyIPv4,6677);参考自http://www.cnblogs.com/wurenzhong/p/8030220.html
//shareaddress 允许绑定在同一个端口
3 如果是组播还涉及的是否加入组播地址
Socket->joinMulticastGroup(QHostAddress("224.0.0.100"));
加入之后退出
Socket->leaveMulticastGroup(QHostAddress("224.0.0.100"));