服务器实现获取所有发现的 ip 地址的列表,然后找到第一个非本地 ip。否则,它默认使用 localhost。如果您看到本地主机地址,则表明您的网络中未正确设置某些内容,并且 Qt 无法确定 LAN ip。
正如@drescherjm 在评论中所建议的那样,您可以通过0.0.0.0
. 要查看此操作,您只需在使用ipAddress
字符串设置状态标签之前添加一行:
// add this to force the socket to listen on all interfaces
ipAddress = QHostAddress("0.0.0.0").toString();
// or if you have a local static ip and want to be explicit
// ipAddress = QHostAddress("192.168.xxx.xxx").toString();
// followed by the already existing line for setting the text
statusLabel->setText(tr("The server is running on\n\nIP: %1\nport: %2\n\n"
"Run the Fortune Client example now.")
.arg(ipAddress).arg(tcpServer->serverPort()));
现在,如果您的网络设置正确,任何其他可以看到运行服务器应用程序的计算机都应该能够在给定端口上连接。