Qt 多軟體同時執行 IP繫結問題

2022-10-08 18:45:17 字數 978 閱讀 9545

最近一直使用qt開發一些配合裝置除錯用的軟體,從中遇到一些問題,簡單記錄一下。

背景:在同一臺筆記本上,同時執行3個基於qt開發的軟體,這三個軟體之間通過udp組播或單播進行通訊

場景一:將3個軟體(a、b、c)需要繫結的ip設定在同乙個網絡卡上,繫結同乙個埠號

由於存在a軟體傳送組播,b軟體需要接收的相關組播裡的報文情況,故需要網絡卡可以自發自收,即

recvsocket->bind(qhostaddress("192.1.104.1"),0x6666,qabstractsocket::shareaddress);//繫結ip和埠號

recvsocket->setsocketoption(qabstractsocket::multicastloopbackoption,1);//設定回環,可自發自收

注:由於在windows系統上執行,故在網路的接收端套接字設定即可

場景二:將3個軟體(a、b、c)需要繫結的ip設定在不同的網絡卡上,繫結同乙個埠號,即該筆記本為多網絡卡環境

多網絡卡同時執行,即使設定了多播回環,軟體之間也無法通過udp組播進行通訊,故需要在加入組播時,繫結對應網絡卡

//

可以檢視網絡卡資訊

qlistifacelist =qnetworkinte***ce::allinte***ces();

for(int i =0;i)

//接收網路套接字 設定網絡卡

recvsocket->setmulticastinte***ce(ifacelist[0

]);//

加入組播,新增對應網絡卡

recvsocket->joinmulticastgroup(qhostaddress("

224.100.200.113

"),ifacelist[0]);

問題:多個軟體同時執行,且對應繫結的ip均部署在同乙個網絡卡上,使用同乙個埠,可以進行軟體與軟體之間的單播通訊嗎?  

回答:可以

Cent OS下配置多tomcat同時執行

核心思想 放在不同的目錄下,修改埠及環境變數 1 配置profile vi etc profile2 加入以下 tomcat路徑要配置自己實際的tomcat安裝目錄 first tomcat catalina base usr local tomcat catalina home usr local...

設定本地wamp環境掛載多站點同時執行

之前寫過一篇關於在linux環境下配置虛擬主機的文章 現在又有一種場景 在本地同時寫多個專案 可本地的wamp環境下預設只有乙個www目錄 這樣經常修改目錄很痛苦 那麼幸福就這麼猝不及防的來了 下面就介紹下如何在本地配置wamp多目錄 示例環境 wampserver版本 2.2 wamp目錄 e t...

shell多個指令碼同時執行

1 編寫多程序實驗指令碼 demo.sh bin bash sub1.log sub2.log sub3.log function sub1 doecho date t sub1.log 注意date 和 號之間有空格。如 date m d date取 月 日 的命令列。sleep 1 done f...