Я пытаюсь отправить дейтаграмму с помощью QUdpSocket. Вот код, который я использую:
udpSocket = new QUdpSocket(this);
QByteArray datagram = "Message";
udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 45454);
Теперь, если я запускаю это на компьютере, который имеет только один сетевой адаптер, он, кажется, работает без проблем. Однако, если есть несколько адаптеров, мне нужно иметь возможность контролировать, какой из них используется для отправки дейтаграммы. Я обнаружил, что если я свяжу сокет следующим образом:
udpSocket->bind(QHostAddress("192.168.1.104"), 45454);
тогда я могу принудительно отправить дейтаграмму в локальной сети, связанной с этим IP-адресом (в противном случае он выбирается случайным образом). Тем не менее, функция 'bind' устанавливает сокет для прослушивания пакетов, что на самом деле меня не интересует в данный момент. Это правильный способ контролировать, какой адаптер используется, или есть более простой способ сделать это?
Спасибо