QUdpSocket を使用してデータグラムを送信しようとしています。以下は私が使用しているコードです:
udpSocket = new QUdpSocket(this);
QByteArray datagram = "Message";
udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 45454);
ネットワーク アダプタが 1 つしかないコンピュータでこれを実行すると、問題なく動作するようです。ただし、複数のアダプターがある場合は、データグラムの送信に使用するアダプターを制御できる必要があります。次のようにソケットをバインドすると、次のことがわかりました。
udpSocket->bind(QHostAddress("192.168.1.104"), 45454);
次に、その IP に関連付けられたローカル ネットワークでデータグラムを強制的に送信できます (そうしないと、ランダムに 1 つを選択するように見えます)。しかし、'bind' 関数はパケットをリッスンするようにソケットを設定しますが、この時点ではあまり関心がありません。これは、使用するアダプターを制御する正しい方法ですか、それとももっと簡単な方法がありますか?
ありがとう