2010-11-24 12 views
1

Qt-FrameworkのC++でQTcpServerを使用しています。QTcpServerは複数のアドレスを取得します

私はそれからアドレスを取得

QHostAddress serverAddress() const 

ret = tcpServer->listen(QHostAddress::Any, 9871) 

でそれを開始しました。 0.0.0.0です。私の意見では、複数のアドレス(127.0.0.1とLANアドレスのようなもの)で聴くべきです。

このクラスから複数のアドレスを取得する方法はありますか?

+0

「リトリーブ」とはどういう意味ですか? – ereOn

答えて

3

私はあなたの質問が正確に何であるかわからないんだけど、...

通常、0.0.0.0はソケットの両方のアップと有効のIPv4アドレスが設定されているすべてのインターフェイスに耳を傾けることを意味します。

あなたがシステム上で使用可能なすべてのIPアドレスを取得したい場合は、(おそらくSIOCGIFSWADDRを指定ioctl、と)それぞれのIPv4アドレスを照会し、ネットワークインターフェースを列挙すべきです。

+0

ああ。これが0.0.0.0の意味であることを知ってうれしいです。ありがとう!それは私の質問に答えました! – Herrbert

+1

@Herrbert:あなたは大歓迎です.Btw、IPv6と同等のものが必要な場合は '::'です。 – ereOn

1

私は上記のereOnの回答に同意します。

ネットワークインターフェイスのアドレスを表示する場合は、QNetworkInterfaceを参照してください。

関連する問題