Qt那些事0.0.27 之 QUdpSocket組播通訊

剛剛寫的因爲網斷了就丟了,不想寫了。


關於組播通信失敗,大概率因爲多網卡,通過ipconfig可以查看具體網卡情況。

C:\WINDOWS\system32>ipconfig
無線局域網適配器 WLAN:

   連接特定的 DNS 後綴 . . . . . . . :
   本地鏈接 IPv6 地址. . . . . . . . : fe80::--------78%18
   IPv4 地址 . . . . . . . . . . . . : 192.168.3.165
   子網掩碼  . . . . . . . . . . . . : 255.255.255.0
   默認網關. . . . . . . . . . . . . : 192.168.3.1

以太網適配器 本地連接* 12:

   連接特定的 DNS 後綴 . . . . . . . :
   本地鏈接 IPv6 地址. . . . . . . . : fe80::---------620%3
   IPv4 地址 . . . . . . . . . . . . : 3.3.0.154
   子網掩碼  . . . . . . . . . . . . : 255.255.0.0

通過wireshark抓包發現,走組播的數據包是通過3.3.0.154接口發出。因此,查詢相關知識,window系統,網絡路由是自動選擇,因此最後通過修改路由表解決此問題。

C:\WINDOWS\system32>route print
===========================================================================
接口列表
 19...8c------- 96 ......Realtek PCIe GBE Family Controller
  4...0a -------04 ......VirtualBox Host-Only Ethernet Adapter
					...
 18...70 -------- e9 ......Realtek 8821CE Wireless LAN 802.11ac PCI-E NIC
  3...00-------48 ......Iceflow Network Adapter
===========================================================================

IPv4 路由表
===========================================================================
活動路由:
網絡目標        網絡掩碼          網關       接口   躍點數
          0.0.0.0          0.0.0.0      192.168.3.1    192.168.3.165     50
          3.3.0.0      255.255.0.0            在鏈路上         3.3.0.154    311
        3.3.0.154  255.255.255.255            在鏈路上         3.3.0.154    311
      3.3.255.255  255.255.255.255            在鏈路上         3.3.0.154    311
     192.168.56.1  255.255.255.255            在鏈路上      192.168.56.1    281
                              ...
  255.255.255.255  255.255.255.255            在鏈路上         3.3.0.154    311
  255.255.255.255  255.255.255.255            在鏈路上      192.168.56.1    281
  255.255.255.255  255.255.255.255            在鏈路上     192.168.3.165    306
===========================================================================

通過route add,新增一條路由信息,確定發往224.1.1.1(掩碼240.0.0.0)使用網關192.168.3.1即可。在先前的路由表中會多一條記錄。只需要軟件重啓,不需要重啓計算機。

設計組播網段爲224.1.1.1,

C:\WINDOWS\system32>route add 224.0.0.0 mask 240.0.0.0 192.168.3.1 -p
 操作完成!

如果mask(掩碼)沒有計算正確,計算機(有可能)會自動添加所有接口,需要使用route delete 224.0.0.0刪除掉。如果正確,會如下新增一條信息。

   192.168.56.255  255.255.255.255            在鏈路上      192.168.56.1    281
        224.0.0.0        240.0.0.0      192.168.3.1    192.168.3.165     51
  255.255.255.255  255.255.255.255            在鏈路上         127.0.0.1    331

參考鏈接:多網卡指定網卡進行UDP通信(添加靜態路由解決雙網卡問題 )全記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章