QList<QNetworkInterface> ifaceList=QNetworkInterface::allInterfaces();
for(int i=0;i<ifaceList.count();i++)
{QNetworkInterface var=ifaceList.at(i);ui->comboBox_NIC->addItem(var.humanReadableName());
}

效果图:

初始化时执行了此函数,当网卡发生变化后再次选择网卡可能会导致程序崩溃。所以当网卡发生变化时 需要更新一下。

使用setMulticastInterface(&face)函数来指定网卡
输入IP,绑定输入IP指定网卡,也可以通过选择网卡,直接绑定网卡

int NIC_choice = ui->comboBox_NIC->currentIndex();
int local_port = ui->lineEdit_port->text().toUInt();
QList<QNetworkInterface> netList =  QNetworkInterface::allInterfaces();
int flag = 1;
QList<QNetworkAddressEntry> entryList = netList[NIC_choice].addressEntries();
dst_ip = QHostAddress(ui->lineEdit_IP_dst->text());
dst_port = ui->lineEdit_port_dst->text().toUInt();
foreach(QNetworkAddressEntry entry,entryList)
{qDebug() << QHostAddress(entry.ip()) << endl;if(QHostAddress(entry.ip()) == QHostAddress(ui->lineEdit_IP->text())){flag = 0;if(udpSocket_net == NULL){udpSocket_net = new QUdpSocket;if(true == udpSocket_net->bind(QHostAddress::AnyIPv4, local_port, QAbstractSocket::ShareAddress))// 第一步:绑定{udpSocket_net->setMulticastInterface(netList[NIC_choice]);// 第二步:指定网卡udpSocket_net->joinMulticastGroup(dst_ip, netList[NIC_choice]);udpSocket_net->setSocketOption( udpSocket_net->MulticastLoopbackOption,1);udpSocket_net->setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption,1024*1024*8);connect(udpSocket_net,SIGNAL(readyRead()),this,SLOT(Device_info_readyRead()));ui->pushButton_connect_net->setText("关闭网络");}else{QMessageBox::critical(this, tr("打开失败"),  tr("端口占用"), QMessageBox::Ok);udpSocket_net = NULL;}}}
}
if(flag)
{QMessageBox::critical(this, tr("打开失败"),  tr("IP错误"), QMessageBox::Ok);
}

QT读取网卡列表多网卡绑定组播网卡相关推荐

  1. asio指定网卡加入组播组

    背景: rtsp客户端接收组播流,PC上存在多个网卡情况下,加入组播组时会选择默认的网卡加入,导致无法接收组播消息,即使抓包已经抓到组播的数据也接收不到. 上图中的IGMPv3消息如果不是由接收组播流 ...

  2. 网卡驱动如何设置组播MAC地址

    最近关注了一些IP组播的知识,IP的组播需要以太网的支持.在这边文章内我们就主要讨论以太网如果支持IP组播. 首先看当前的interface是否支持multi-cast,如下面的命令红色部分标注,则说 ...

  3. windows7 python 指定源组播 10049_Python3组播通信编程实现教程(发送者+接收者)

    一.说明 1.1 标准组播解释 通信分为单播.多播(即组播).广播三种方式 单播指发送者发送之后,IP数据包被路由器发往目的IP指定的唯一一台设备的通信形式,比如你现在与web服务器通信就是单播形式 ...

  4. 加入rtp组播_耗时10+小时撰写 带你系统认识组播 收藏这些概念

    组播multicast:在一个或跨越多个广播域,实现点对多点的通信需求,不存在强制性:比单播技术更加灵活.比广播技术更加高效:广泛应用在网络电视.在线直播.远程教育.视频会议等对带宽和数据交互实时性较 ...

  5. igmp组播实验 @yx

    gns3 cisco 搭建组播实验 环境 gns3安装 网络拓扑 路由器配置 模拟组播 使用c++程序模拟组播源和接受者 实验结果查看 遇到的问题 环境 window10 gns3 gns3安装 放一 ...

  6. 组播,单播和广播相关

    一,定义: 1,单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信.单播和广播是两个极端,单播对一个主机进行通信,广播对整个局域网上的主机进行通信. 多播,也称为&q ...

  7. IP组播配置与管理实战——5

    组播VLAN配置与管理 组播VLAN(Multicast VLAN)一般部署于设备的网络侧来实现组播流汇聚,然后将组播报文在用户VLAN内复制分发.华为S系列交换机支持基于用户VLAN和基于接口两种方 ...

  8. 华为数通笔记-组播协议介绍之IGMP

    组播网络需要基于多种组播协议才能建立转发路径: 工作在成员端网络的主要是IGMP(Internet Group Management Protocol,因特网组管理协议)协议 用于告知组播网络,组成员 ...

  9. 网络直播,如何跳出组播的坑!

    互联网上的直播,其数据传输方式都采用"单播"方式,所以大家在讨论直播技术时,少有人提及"组播"这个词. 然而,作为直播的组成部分,在广电有线电视.IPTV等应用 ...

最新文章

  1. 字节一实习生求助:晚上九点半在公司打游戏,被领导发现后开除,将来找工作会背调出来吗?...
  2. 六月第一枪:股市震荡,下一步该做什么?
  3. 傅里叶卷积实现「万物隐身」,这个神器可试玩
  4. SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?
  5. Spring Cloud Alibaba 2021.0.1.0 发布:版本号再也不迷糊了
  6. asp.net 2.0 技巧2
  7. 一张图解释几个监督学习的定义
  8. 0x0000007F蓝屏问题摸索解决-没有完成
  9. Mybatis的模糊查询
  10. gradle下bug修正后问题仍存在解决思路
  11. MyBatis中or和and的使用问题
  12. python sqlserver 列名_报表自动化,三流用Excel,二流用Python,一流用它
  13. mvc跳转html,ASP.NET MVC页面重定向简单介绍
  14. linux 环境搭建Jenkins
  15. 零基础学python还是c语言-学习汇编还是学习python,自己刚学完C语言,学习那个好呢?...
  16. BI软件的作用有哪些
  17. C#基础知识梳理系列七:字符串
  18. 图像智能处理黑科技,让图像处理信手拈来
  19. win7打印机服务器修改ip,win7系统电脑更换IP地址后打印机不能打印文件了的解决方法...
  20. Ubuntu 14.04 卸载搜狗拼音输入法及后续问题解决

热门文章

  1. js replace替换目标字符串 可以多个
  2. 理解ip addr命令下面各个子项目eth0的意思
  3. 1~2、缘何学硬件 开始DIY
  4. 吃鸡一个账号能进几个服务器,吃鸡体验服再开启,共210000个名额,只有1种玩家无法申请...
  5. 开源虚拟化项目-Xen
  6. 解决多网卡SNMP获取不到数据的问题
  7. TIDB-dm-数据同步初步搭建
  8. 国海证券分析报告(0607)
  9. 关于隐私保护通话 - 隐私号关系详解
  10. oracle tnsping 下载,tnsping命令对tnsname.ora文件的使用