9

我的计算机在本地网络上的 IP 是192.168.0.100,我启动我的 QTcpServer

if (!tcpServer->listen(QHostAddress::LocalHost, 1234)) {

当我尝试使用 连接到它时netcat 192.168.0.100 1234,连接被拒绝,但netcat localhost 1234成功。

同时,如果我用 听netcat -l -p 1234,我可以同时连接192.168.0.100localhost没有任何问题。

这让我摸不着头脑,为什么会这样?

4

2 回答 2

9

为了接受来自外部的连接,您必须在 上收听0.0.0.0,而不是在127.0.0.1或上收听localhost。后者只允许来自同一台机器的连接。这也是 的价值QHostAddress::LocalHost

因此,将第一个参数更改为QHostAddress::Any它应该可以工作。

于 2013-11-04T16:11:43.517 回答
3

localhost位于单独的网络接口上

你可以QHostAddress::Any用来监听外部连接

于 2013-11-04T16:12:50.257 回答