当前位置: 首页 > article >正文

AddIPAddress添加临时IP后,socket bind失败

问题描述

在Win10\Win11下使用addIPAddress添加临时IP成功后,立即创建socket,bind失败

if(!m_socket->bind(QHostAddress(m_localIP), listenPort))
{
    qCritical() << QString("bind error %1").arg(m_socket->errorString());
    return;
}

错误输出:
bind error 这个地址不可用

解决方案

经测试addIPAddress添加临时IP后,未立即生效,至少要超过3秒的等待时间,故采用如下方案:

int count = 0;
bool bindOK = false;
do
{
	bindOK = m_socket->bind(QHostAddress(m_localIP), listenPort);
	if(bindOK){
		break;
	}

	QThread::msleep(500);
} while (count++ < 12);

if (!bindOK)
{
	qCritical() << QString("bind error %1").arg(m_socket->errorString());
	return;
}

查询相关资料

https://learn.microsoft.com/zh-cn/windows/win32/api/iphlpapi/nf-iphlpapi-addipaddress
https://bbs.csdn.net/topics/390226048
https://stackoverflow.com/questions/23620805/addipaddress-not-taking-immediate-effect


http://www.kler.cn/a/409981.html

相关文章:

  • 浏览器缓存与协商缓存
  • React(六)——Redux
  • redis的map底层数据结构 分别什么时候使用哈希表(Hash Table)和压缩列表(ZipList)
  • 【软考】数据库
  • Load-Balanced-Online-OJ(负载均衡式在线OJ)
  • postgresql按照年月日统计历史数据
  • 记录两次Unity编辑器和真机表现不符的情况,引用丢失等
  • 英语知识在线平台:Spring Boot框架实践
  • k8s篇之flannel网络模型详解
  • 地球科技的方向走错了吗
  • 使用phpStudy小皮面板模拟后端服务器,搭建H5网站运行生产环境
  • leetcode 212. 单词搜索 II
  • Gitee markdown 使用方法(持续更新)
  • Leetcode647. 回文子串(HOT100)
  • vue项目实现动效交互---lottie动画库
  • Flink中普通API的使用
  • 前端速通(CSS)
  • 力扣 189. 轮转数组
  • C++之《剑指offer》学习记录(12):二叉树的下一个节点
  • node.js路由
  • 香港大带宽服务器:助力高效网络应用
  • 15分钟做完一个小程序,腾讯这个工具有点东西
  • PCB元器件封装和3D库怎么找?
  • springboot/ssm企业车辆管理系统Java企业公交车辆信息管理平台web源码
  • 下载并安装Zsh
  • SD-WAN网络与自动化运维的结合