我想使用QUdpSocket發送數據報。下面是我使用的代碼:使用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相關的本地網絡上發送出去的數據包(否則它似乎選擇一個隨機)。然而,'綁定'函數設置套接字來偵聽數據包,在這一點上我真的不感興趣。這是控制使用哪個適配器的正確方法,還是有更直接的方法來實現這一點?
感謝
感謝您的建議,但使用地址「192.168.255.255」沒有幫助。我的計算機在適配器1上的IP地址是192.168.1.104,而在適配器2上是192.168.56.1,所以我假設使用上述地址仍然會選擇錯誤的適配器。但是,如果我使用「192.168.1.255」它似乎工作。但是,我對網絡沒有太多的經驗。這將是多麼強大。也就是說,它可以在任何(大多數)系統上工作嗎?謝謝。 – 2011-06-16 14:25:45