QTcpServer只能通过localhost访问

时间:2013-11-04 16:08:47

标签: c++ qt ip qtcpserver

我的计算机本地网络上的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

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

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:3)

localhost位于单独的网络接口

您可以使用QHostAddress::Any侦听外部连接