我正在开发一款运行在具有多个网卡(多宿主)系统上的Linux Qt5/C++应用程序。我需要强制我的出站TCP连接使用特定的网卡/IP。我尝试了下面的代码,但是netstat确认我的应用程序仍然在使用错误的本地网卡/IP。
if (m_tcpSocket->bind(localaddress)) qDebug() << "Bind success";
m_tcpSocket->connectToHost(
remoteaddress,
remoteport,
QTcpSocket::ReadWrite);
}
我是否在错误地调用? 我看到“绑定成功”,所以我认为调用是正确的......但我无法解释为什么它不起作用。
更新:我找到了这个漏洞报告:https://bugreports.qt.io/browse/QTBUG-29732 有没有解决方法? 我看到QAbstractSocket中有setLocalAddress(),但我不确定它是否相同。