2010-04-27 65 views

回答

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上的地址。你必須希望當你這樣做的時候,路由表實際上會做你期望的。

相關問題