QT读取网卡列表多网卡绑定组播网卡

这篇具有很好参考价值的文章主要介绍了QT读取网卡列表多网卡绑定组播网卡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

效果图:
qt linux多网卡,QT,UDP,C++,qt,ui,开发语言
初始化时执行了此函数,当网卡发生变化后再次选择网卡可能会导致程序崩溃。所以当网卡发生变化时 需要更新一下。

使用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 linux多网卡,QT,UDP,C++,qt,ui,开发语言文章来源地址https://www.toymoban.com/news/detail-517991.html

到了这里,关于QT读取网卡列表多网卡绑定组播网卡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • eNSP中Cloud配置绑定网卡只有UDP,没有其他网卡(物理网卡和虚拟网卡)信息

    遇到上述问题,卸载WinPcap后重新安装。 如果在Windows 10系统下重新安装WinPcap4.1.3有如下弹框: WinPcap 4.1.3 Setup :A newer version of WinPcap…… 提示已经安装了更高版本的WinPcap时,按如下操作解决。 找到相应文件,扩展名修改成如下: C:WindowsSysWOW64 的wpcap.dll改成 wpcap.dll.old C:

    2024年02月04日
    浏览(58)
  • 【QT开发(5)】0919-QT里面新增ui类,新增使用opencv读取图片的普通类,在ui类中显示图片

    1、Qt Creator快速入门_第三版__霍亚飞编著 2、《Qt+OpenCV显示图片(Mat转QImage然后显示在QLabel上)》 https://gitee.com/hiyanyx/qt5.14-cpp_-empty_-project/tree/Study2023-section5/ git分支“Study2023-section5” 新增ui类 新增使用opencv读取图片的普通类 为了更加方便,可在QT 中添加普通类,这样会自动生

    2024年02月07日
    浏览(46)
  • qt-c++进阶1-window、linux下获取本机所有网卡ip信息、根据网卡名获取ip地址。

    例如:第一章 主要是通过qt-c++实现获取本机电脑的网卡信息或者是IP信息 总结c++获取本机网卡信息的方法 第一章:适用于windows操作系统、linux操作系统 用 QHostAddress 解析获取本机 IPV4地址 ; 用 QNetworkInterface 解析获取所有网关信息( IP地址(IPV4和IPV6) 、 子网掩码 、 广播地

    2024年02月13日
    浏览(49)
  • Linux网络编程系列之UDP组播

            1、 Linux网络编程系列之网络编程基础         2、 Linux网络编程系列之TCP协议编程         3、 Linux网络编程系列之UDP协议编程         4、 Linux网络编程系列之UDP广播         5、 Linux网络编程系列之UDP组播         6、 Linux网络编程系列之服务器编程——阻塞IO模型

    2024年02月04日
    浏览(46)
  • Qt下基于QUdpSocket实现指定源组播

    在这种模型下,任何发送方可以发送给任何组。在路由器角度上看,只要接收方“注册”了自己属于组播,任何发送方(任何源)的数据都会分到接收方。 接收方在“注册”自己加入组的同时,还会告诉路由器只接受某几个发送方(指定源),包括一个组地址和一个源IP地址

    2024年02月06日
    浏览(79)
  • C++ Qt开发:QUdpSocket实现组播通信

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用 QUdpSocket 组件实现基于UDP的组播通信。 组播是一种一对多的通信方式

    2024年03月20日
    浏览(34)
  • Linux实现双网卡绑定

    目录 一、介绍 二、步骤 三、测试 linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际同样连接两条物理线路到交换机实现平时双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障。 配置双网卡的目的:实现高可用、流量负载均衡

    2024年02月08日
    浏览(38)
  • Linux 网络配置(添加网卡、网卡会话配置、网卡绑定、配置主机名、配置路由)

    目录 配置网卡基本信息 通过nmcli命令配置网卡 通过配置网卡文件配置网卡 通过nmtui命令配置网卡 通过nm-connection-editor命令配置网卡 网卡高级配置 配置网络会话 配置网卡绑定(Bonding) 通过nmcli命令配置网卡绑定 nm-connection-editor 进行网卡绑定(图形化界面) 通过编辑文件的

    2024年02月10日
    浏览(47)
  • Linux系统之Bonding 网卡绑定配置方法

    注:关于mode的说明 mode=0 //平衡循环 mode=1 //主备 mode=3 //广播 mode=4 //链路聚合 可以正常ping通 当前活动网卡已经切换到eth2,eth2网卡提供服务 可以正常ping通 当前活动网卡已经切换到eth1,eth1网卡提供服务

    2024年02月03日
    浏览(43)
  • Linux网络配置与网络信息查看讲解(网卡基本配置、网卡会话配置、网卡绑定、主机名配置、路由配置)

    目录 配置网卡基本信息 通过nmcli命令配置网卡 通过配置网卡文件配置网卡 通过nmtui命令配置网卡 通过nm-connection-editor命令配置网卡 网卡高级配置 配置网络会话 配置网卡绑定(Bonding) 通过nmcli命令配置网卡绑定 nm-connection-editor 进行网卡绑定(图形化界面) 通过编辑文件的

    2024年02月07日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包