udp的广播,多播,单播 demo

enum class EMsgType:uint8_t

{

EMSGT_SINGLE,//单播

EMSGT_MULTICAST,//多播

EMSGT_BROADCAST,//广播

};

复制代码

sendSocket =new QUdpSocket(this);

sendSocket->setSocketOption(QAbstractSocket::MulticastTtlOption, 1);

sendSocket->bind(QHostAddress::AnyIPv4, 0,QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint);

复制代码

void MainWindow::SendUdpData(const QByteArray &SendData, const QHostAddress &ip, quint16 port, EMsgType msgType)

{

cout<<"ip: "<<ip<<", port: "<<port;

//广播

if(msgType == EMsgType::EMSGT_BROADCAST)

{

cout<<"EMsgType::EMSGT_BROADCAST:"<writeDatagram(SendData,QHostAddress::Broadcast,port);

}

else if(msgType == EMsgType::EMSGT_MULTICAST)

{

//多播

sendSocket->joinMulticastGroup(QHostAddress(ip));

cout<<"EMsgType::EMSGT_MULTICAST:"<writeDatagram(SendData,QHostAddress(ip),port);

}

else

{

//单播

sendSocket->leaveMulticastGroup(QHostAddress(ip));

cout<<"EMsgType::EMSGT_SINGLE:"<writeDatagram(SendData,QHostAddress(ip),port);

}

}

复制代码
相关推荐
古译汉书2 小时前
【IoT死磕系列】Day 9:架构一台“自动驾驶物流车”,看8种协议如何协同作战
网络·arm开发·单片机·物联网·tcp/ip·架构·自动驾驶
哼?~4 小时前
Linux--网络基础
网络
苏渡苇5 小时前
Docker 网络完全指南
网络·docker·容器·docker容器·容器通信
风曦Kisaki7 小时前
# Linux 磁盘查看命令详解:df 与 du
linux·运维·网络
攻城狮在此7 小时前
华为交换机Console口密码如何清除
运维·网络·华为
hhcgchpspk8 小时前
网速上传下载流量监测工具尝试
网络·python·cmd·psutil
亚空间仓鼠9 小时前
OpenEuler系统常用服务(四)
linux·运维·服务器·网络
刘佬GEO9 小时前
【无标题】
网络·人工智能·搜索引擎·ai·语言模型
中议视控9 小时前
展厅和会议网络可编程中央控制系统主机支持HomeKit技术和BACnet网络
网络
昪彧翀忞9 小时前
dhcp小实验
linux·服务器·网络