にリスニング:QTcpServer私は<code>QTcpServer</code>を開始するためのコードの塊を以下しているアドレス0.0.0.0
void UeConnectionServer::ueStartConnectionServer()
{
QString logText=QString();
if(!this->isListening())
{
if(!this->listen(QHostAddress::Any,
1234))
{
logText=tr("[ERROR]").append(" ")
.append(QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss:zzz"))
.append(" ")
.append(this->errorString());
emit this->ueSignalEventInfoAdded(logText);
}
else
{
logText=tr("[INFO]").append(" ")
.append(QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss:zzz"))
.append(" ")
.append(tr("Server started on address ")
.append(this->serverAddress().toString())
.append(":")
.append(QString::number(this->serverPort())));
emit this->ueSignalEventInfoAdded(logText);
} // if
} // if
} // ueStartConnectionServer
サーバーが正常に開始されたが、しかし、次のログ行は、それがアドレス0.0.0.0
をリッスンしている示しています
サーバーがアドレス0.0.0.0:1234
なぜQTcpServer
ないで開始265:
[INFO] 2016年3月25日12:02:36私の場合、ワークステーションのIPを取得する192.168.0.100
。私はLinux
を使用して、ここifconfig
出力されています:
eth0 Link encap:Ethernet HWaddr 1c:6f:65:92:82:02
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:18984 errors:0 dropped:0 overruns:0 frame:0
TX packets:18984 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3979893 (3.9 MB) TX bytes:3979893 (3.9 MB)
vmnet1 Link encap:Ethernet HWaddr 00:50:56:c0:00:01
inet addr:172.16.115.1 Bcast:172.16.115.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:327 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
vmnet8 Link encap:Ethernet HWaddr 00:50:56:c0:00:08
inet addr:192.168.77.1 Bcast:192.168.77.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:326 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 6c:fd:b9:2d:cc:90
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::6efd:b9ff:fe2d:cc90/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1047445 errors:0 dropped:0 overruns:0 frame:0
TX packets:583455 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1267590187 (1.2 GB) TX bytes:99542638 (99.5 MB)
が、多分QTcpServer
試みは、リスト内の最初のネットワーク・インタフェースからIP address
を取得することを問題とないアクティブ 1ですか?
あなたはどういうことを言っていますか?サーバーは 'QHostAddress :: Any'をリッスンするようにサーバーに要求しました。つまり、' 0.0.0.0'アドレス(つまり、**任意のインターフェイス**)をリッスンします。 – peppe
@peppeはい私は 'QHostAddress :: Any'を聞くように依頼しましたが、' 0.0.0.0'を聞いていますが、 'this-> serverAddress()。toString()'も '0.0.0.0 '、それは私のアクティブなインターフェイスIP、すなわち' 192.168.0.100'を返すべきですか? – KernelPanic
あなたはそのインターフェイスにバインドしていないので、*任意の*インターフェイスにバインドしました。別のインターフェースが別のIPを持ってくると、それに拘束されます。既存のものがダウンしても。 – peppe