2009-09-01 8 views
2

Qtを使用して構築されているアプリケーションがあります。 2つ(またはそれ以上)のネットワークカードを持つマシン上で実行されます。自分のアプリケーションでTCP接続用のイーサネットインタフェースを選択する能力が必要です。誰かがそれを提案する前に、私はルーティングテーブルが正しくセットアップされることを保証できません。私はWindowsのソケットクラスを使ってこれを行う方法を知っていますが、Qtのために何も見つけることができませんでした。どんな助けでも大歓迎です!デュアルホームのホストでQTcpSocketをバインドする

答えて

5

アウトバウンド接続またはインバウンド接続を指していますか?

インバウンド接続を参照する場合は、QTcpServer::listenコールにQHostAddressを指定するだけです。

アウトバウンド接続について話している場合は、QAbstractSocket::setLocalAddressに電話して、ローカルアドレスを特定のものに強制することができます。

乾杯、

+0

QAbstractSocketのサブクラスでこの関数を呼び出すと、接続が確立された後にlocalAddress()関数の戻り値を変更できます。この機能は、仮想接続設定のプロキシ接続で一般的に使用されます。 この関数は、接続前にソケットのローカルアドレスをバインドしません(例:QAbstractSocket :: bind())。 – IGHOR

1

Qt 4.2以降を使用している場合は、QNetworkInterfaceを使用して、コンピュータのネットワークインターフェイスの一覧を取得してから、何らかの種類のネットワークインターフェイスを作成できます。

+0

どのインターフェイスが利用可能かわかりません。私の質問は、特定のインターフェイスを使用するようにQTcpSocketクラスを強制する方法です。 – NJChim

関連する問題