QTcpServer只能通过localhost访问

sas*_*alm 7 c++ ip qt qtcpserver

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

if (!tcpServer->listen(QHostAddress::LocalHost, 1234)) {
Run Code Online (Sandbox Code Playgroud)

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

与此同时,如果我倾听netcat -l -p 1234,我可以连接两者192.168.0.100localhost没有任何问题.

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

let*_*tar 7

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

所以改变第一个参数QHostAddress::Any,它应该工作.