QtSDK中有一個關於網絡廣播的簡單例子。發送和接收廣播信息很容易。而在接收端,我想知道我剛收到的廣播包。我在readyRead信號回調函數中嘗試QUdpSocket.peerName(),但是我得到了空字符串。任何線索?Qt網絡廣播問題:獲取發件人IP
回答
從文檔:
返回同位體的名稱如由connectToHost(指定),或者如果connectToHost一個空的QString()沒有被調用。
所以,如果你叫connectToHost()
你應該得到一個結果。您也可以嘗試peerAddress()。除非你總是通過名字連接,否則我不會指望你總是能夠進行反向查詢並獲得一個名字。
我應該在readyRead信號插槽中調用connectToHost()? – catinred 2011-05-03 15:00:47
當您使用QUdpSocket::readDatagram()讀取數據包時,您可以檢索發件人的IP地址。您需要將指針傳遞給readDatagram()的QHostAddress在其中存儲地址:
QHostAddress senderAddress;
yourSocket->readDatagram(&data, size, &senderAddress);
// senderAddress now represents the sender address
如果你需要,請參閱文檔QHostAddress你可以得到的地址從senderAddress爲QString或整數。
如果你想要一個主機名,你可以使用QHostInfo做反向查找(但不能保證獲得一個名稱)。
在socket-> readDatagram之後,QString ip = socket-> peerAddress()。toString();我得到空字符串。 – catinred 2011-05-03 14:59:45
@cantinred編輯。您需要傳遞readDatagram()指向要存儲地址的QHostAddress的指針。 – Leiaz 2011-05-03 15:29:12
@Leiaz它不起作用。接收廣播數據包時,您獲得的地址(位於senderAddress中)爲0.0.0.0。我認爲它也可以工作,但是要麼是Qt做了一些愚蠢的事情,要麼Linux的底層套接字實現爲您提供了一個空的接收廣播數據包的源地址。 – doug65536 2013-05-19 11:24:26
- 1. 廣播對等網絡
- 2. 網絡UDP廣播設計?
- 3. Gridview與廣播列,廣播id問題
- 4. Angular $廣播問題
- 5. UDP廣播問題
- 6. UDP廣播問題?
- 7. 在android網絡上獲取個人電腦的IP地址
- 8. UDP廣播或IP多播?
- 9. 廣播您的互聯網IP
- 10. 沒有廣播的局域網上的網絡發現
- 11. 獲取網絡用戶的IP地址
- 12. qt - 基於網絡的位置獲取
- 13. Java併發網絡問題
- 14. 從網絡收聽廣播流
- 15. 最好的Django網絡廣播/視頻
- 16. Qt網絡訪問管理器JSON獲取響應
- 17. 如何通過網絡廣播/多播服務以供客戶端發現而不需要服務器IP
- 18. 廣播接收機問題
- 19. java的UDP廣播問題
- 20. 從廣播接收器獲取喚醒鎖定問題
- 21. 從所有網絡適配器發送廣播消息
- 22. 網絡狀態發生變化時的廣播意圖
- 23. IOS5中的tableviewcell問題,無法獲取tabviewcell發件人事件
- 24. 網絡問題
- 25. 在Qt中獲取文件的網絡路徑
- 26. 網絡抓取字體訪問問題
- 27. 300級別的網絡廣播或說話是什麼意思(在MSDN,網絡廣播,trainig等)?
- 28. 如何知道廣域網IP是否發生了變化並接收到大量的IP地址廣播
- 29. Python:從網址獲取shoutcast /互聯網廣播電臺名稱
- 30. 如何獲取iOS中個人熱點的子網掩碼和廣播地址
youu找到任何解決方案 – Xsmael 2017-03-08 17:05:59