我使用Qt進行TCP通信。如果我的電腦有2個網絡接口(比如說eth0,eth1),並且說我想明確地使用eth1,那麼在Qt中我該怎麼做?如何選擇使用哪個網絡接口?
6
A
回答
7
QTcpServer :: listen將您想要偵聽的接口的地址作爲第一個參數。
如果你有eth1上然後在eth0的IP地址爲192.168.0.1和10.0.0.0.1
QTcpServer serv0;
QTcpServer serv1;
serv0.listen(QHostAddress("192.168.0.1"), 8080);
serv1.listen(QHostAddress("10.0.0.0.1"), 8080);
serv0將只監聽eth0和SERV1端口8080將監聽eth1上只有8080端口。
無法指定QTcpSocket使用哪個接口,因爲它是由操作系統根據內核路由表決定的。
您可以使用QNetworkInterface :: allAddresses()來獲取可用接口地址列表。
1
這不是一個Qt問題,這是一個套接字問題。綁定()到eth1上的地址。你必須希望當你這樣做的時候,路由表實際上會做你期望的。
相關問題
- 1. 可以選擇使用哪個網絡接口?
- 2. 如何確定網絡連接正在使用哪個端口?
- 3. 使用每個Java程序使用哪個網絡接口?
- 4. 從Camel Mina中選擇網絡接口
- 5. 如何選擇網絡接口,用於與Python
- 6. 如何爲NSURLSession連接選擇特定的網絡接口?
- 7. 如何自動選擇Vagrant中的橋接網絡接口?
- 8. 在SSH.NET中選擇SftpClient類使用的網絡接口
- 9. 如何使用INetFw接口進行多個網絡連接?
- 10. 選擇在OpenCV中使用哪個網絡攝像頭
- 11. 操作系統如何知道哪個網絡接口用於互聯網?
- 12. 我怎樣才能選擇多個網絡接口使用Apache httpclient 4.1.2
- 13. 如何在java中同時使用多個網絡接口?
- 14. H2多個網絡接口
- 15. JBoss如何選擇使用哪個AJP端口?
- 16. 網絡選擇
- 17. 如何通過命令行選擇多個網絡連接?
- 18. 如何確定哪個接口屬於每個網絡目標 - Java?
- 19. 如何跟蹤任何程序試圖使用哪個網絡端口?
- 20. 如何確定當設備連接到互聯網時使用哪個網絡
- 21. 如何告訴ruby網絡庫使用特定的網絡接口?
- 22. File.Move/File.Copy使用網絡接口卡(NIC)?
- 23. Socket.bind的首選網絡接口
- 24. 在Python中選擇多播網絡接口
- 25. 爲Zend_Service_Amazon_S3選擇不同的網絡接口
- 26. AutoDisovery選擇了錯誤的網絡接口
- 27. CodeIgniter PHP - 如何選擇使用「select *」在聯接中選擇哪個ID
- 28. 分配網絡安全組網絡接口使用ARM的PowerShell
- 29. 如何枚舉網絡接口