问题描述
在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;
}
标签:socket,IP,添加,bindOK,bind,addIPAddress
From: https://blog.csdn.net/ZaiLuShang2121/article/details/144031926