[問題] 用Qt的UDP做語音通話

看板C_and_CPP作者 (15357)時間9年前 (2016/06/05 12:56), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Qt 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Qt 問題(Question): 各位大大好 想請問一下,小弟第一次用到UDP來寫Socket 目前想實作一個可以語音通話的程式 在A電腦開啟Server模式後 B、C...等電腦可以藉由輸入A電腦的IP來連線,並進行語音通話 可是有幾個問題想請教一下各位大大 假設A電腦的IP是1.1.1.1、B電腦是2.2.2.2、C為3.3.3.3 我在A電腦new 一個UDP並且監聽的Port假設是5555 serverSocket = new QUdpSocket(); serverSocket->bind(5555, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint); 那麼我B電腦則是會通過new一個UDP,並且連接到A電腦的IP clientSocket = new QUdpSocket(); clientSocket->connectToHost("1.1.1.1", 38888); C電腦也是同樣的方式 我嘗試上述的做法後,B跟C確實可以用writeDatagram傳送資訊到A電腦 QByteArray data; clientSocket->writeDatagram(data, QHostAddress::Broadcast, 38888); 可是目前的問題卡在A該怎麼傳送資訊到B跟C 我如果同樣在A上用serverSocket->writeDatagram() 也只有A本身會收到而已@@ 而且B在writeDatagram時,雖然A收的到,不過C是收不到的 我上網搜跟UDP廣播有關的關鍵字,查到的都是Client傳給Server端而已 並沒有找到Server傳給Client的方法 難道說UDP的Socket其實Server無法傳送資訊給Client嗎@@? 如果是的話那我還真的耍蠢了... 所以想請問一下各位大大,該怎麼做才能讓A電腦也能傳送資訊給B、C 以及B再傳資訊時,A跟C也都收的到 謝謝各位大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.17.155 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465131384.A.596.html

06/05 21:02, , 1F
writeDatagram 明明就可以指定收件人的 IP 和 port
06/05 21:02, 1F

06/05 21:03, , 2F
你用 broadcast 是想做什麼?
06/05 21:03, 2F
文章代碼(AID): #1NL25uMM (C_and_CPP)