2009-09-01 48 views
2

我有一個使用Qt構建的應用程序。它將在具有兩個(或更多)網卡的機器上運行。我需要我的應用程序選擇TCP連接的以太網接口的能力。在任何人建議之前,我不能保證路由表將被正確設置。我知道如何使用Windows套接字類來做到這一點,但一直無法找到任何關於它的Qt。任何幫助將不勝感激!在雙宿主主機上綁定QTcpSocket

回答

5

你指的是出站連接還是入站連接?

如果您指的是入站連接,您只需要爲QTcpServer::listen調用指定一個QHostAddress。

如果你正在談論一個出站連接,你可以撥打QAbstractSocket::setLocalAddress強制本地地址到一些特定的地方。

乾杯,

+0

您可以在QAbstractSocket的子類中調用此函數,以在連接建立後更改localAddress()函數的返回值。此功能通常由代理連接用於虛擬連接設置。 請注意,此函數在連接之前不會綁定套接字的本地地址(例如,QAbstractSocket :: bind())。 – IGHOR 2014-10-16 10:47:47

1

如果您使用的是Qt 4.2或更高版本,則可以使用QNetworkInterface來獲取計算機中的網絡接口列表,然後創建某種網絡接口選擇。

+0

我沒有找到哪個接口可用的問題。我的問題是如何強制QTcpSocket類使用特定的接口。 – NJChim 2009-09-01 21:50:52