我有一個應用程序使用QUdpSocket
來發送廣播數據包。發送數據包的機器有幾個網絡接口。如何指定要使用的QUdpSocket的網絡接口?
不幸的是,我一直無法弄清楚如何讓QUdpSocket
使用正確的網絡接口。是否有某個選項允許我指定準確使用哪個接口來發送數據包?
我有一個應用程序使用QUdpSocket
來發送廣播數據包。發送數據包的機器有幾個網絡接口。如何指定要使用的QUdpSocket的網絡接口?
不幸的是,我一直無法弄清楚如何讓QUdpSocket
使用正確的網絡接口。是否有某個選項允許我指定準確使用哪個接口來發送數據包?
每個子網都有自己的廣播地址。所以我認爲你可以將廣播數據包直接發送到地址10.255.255.255或192.168.255.255。
你實際上是在綁定函數地址的第一個參數中選擇要監聽的網絡。如果您選擇例如QHostAddress::AnyIPv4
這意味着無論從哪個接口(更好地說由於哪個IP地址)接收數據包,程序都應該捕獲它。否則,您可以輸入數據包應發送到的IP地址(或廣播地址)。
對於它調試和驗證,您可以使用netstat
作爲解釋這裏列出開放的端口: https://superuser.com/questions/529830/get-a-list-of-open-ports-in-linux
在netstat命令的結果,Local Address
是你在找什麼,指定哪些地址已經被聆聽。
注意:本地地址(例如:0.0.0.0或127.0.0.1)中的localhost地址表示任何本地地址都可以接受。