如何在C++/Qt不使用QProcess吗?

如何在C++/Qt不使用QProcess吗?,qt,network-programming,qt5,qtnetwork,Qt,Network Programming,Qt5,Qtnetwork,在启动外部程序之前,我希望在Qt应用程序中ping一个ip地址 我希望在不使用ping.exe(并执行进程)的情况下编写一个ping类。问题是当我“ping 127.0.0.1”时,需要3秒以上的时间才能在windows上完成(ping)过程。我只需要快速检查(少于500毫秒)就可以(立即)执行我的外部程序 我想用QNetwork或类似的东西 如果您不介意在Qt应用程序中使用依赖于平台的代码,您可以检查: 例如,在windows和上使用ICMP echo API 对于liboping,Lin

在启动外部程序之前,我希望在Qt应用程序中ping一个ip地址

我希望在不使用ping.exe(并执行进程)的情况下编写一个ping类。问题是当我“ping 127.0.0.1”时,需要3秒以上的时间才能在windows上完成(ping)过程。我只需要快速检查(少于500毫秒)就可以(立即)执行我的外部程序


我想用QNetwork或类似的东西

如果您不介意在Qt应用程序中使用依赖于平台的代码,您可以检查:

例如,在windows和上使用ICMP echo API


对于liboping,Linux C库生成ICMP回显请求。

我认为需要几秒钟,因为
ping
实用程序发送多个回显请求。您可以将其配置为仅发送一个包,如:
ping127.0.0.1-n1
。该过程会立即退出。一种可能是,正如vahancho所说,要减少尝试次数并坚持使用“ping”,另一种可能是使用ICMP(Internet控制消息协议;)并自行实现。如果要检查连接,我不明白为什么要ping一个IP地址。可能还有其他更好的解决方案来解决此请求。