If you are using Qt 5.8 or later, you can use one of the QNetworkDatagram features, as shown here: https://doc.qt.io/qt-5/qnetworkdatagram.html#setInterfaceIndex
void QNetworkDatagram::setInterfaceIndex(uint index)
Where the index matches the index from QNetworkInterface:
// List all of the interfaces QNetworkInterface netint; qDebug() << "Network interfaces =" << netint.allInterfaces();
Here is an example:
QByteArray data; data.fill('c', 20); // stuff some data in here QNetworkDatagram netDatagram(data, QHostAddress("239.0.0.1"), 54002); netDatagram.setInterfaceIndex(2); // whatever index 2 is on your system udpSocket->writeDatagram(netDatagram);
source share