我在使用 QProcess ping 到目标/本地 IP 时遇到问题。当 ping 成功时,QProcess 返回“0”,而当 ping 给出“网络无法访问”错误时(在终端上手动查看)。
实际上我需要检查我的应用程序中的网络连接。为了实现它,我使用了一个非常简单的使用 QProcess 的 ping 概念。如果有任何网络错误,我需要弹出一个消息框,否则应用程序正常启动而没有任何弹出消息。
这是我的 ping 代码:
bool App::pingPcuStatus(void)
{
const QString IP ="192.168.49.44";
bool ret = false;
int status;
if ( IP == "0.0.0.0") {
status = 1;
}
else {
QProcess pingProcess;
QString exec = "ping";
QStringList params;
params << "-c" << "1" << IP;
status = pingProcess.execute(exec, params); //status = 0 , if Ping Successfull
pingProcess.close();
}
ret = (status) ? false : true;
return ret;
}
但是在调试时我发现,即使我没有连接到网络,它也会返回“true”。(我尝试在终端上使用相同的命令手动 ping,它给出“网络无法访问”错误)。
在我的情况下,这导致了一个大错误。
使用 QProcess 或任何其他解决方法来捕获此错误的最佳方法是什么???
欢迎任何想法或建议。