【发布时间】:2014-05-21 00:50:33
【问题描述】:
目前我使用此代码检索目标系统的 ping。 然而,它目前仅在 linux 下有效,并且可能取决于语言环境设置。 添加对 windows 的支持可能会更加复杂。 是否有一种简单的方法或库来获取目标系统的 ping?我主要使用 Qt,所以如果我可以使用 QSockets 将是理想的。
#ifndef _WIN32
QProcess ping;
ping.start("ping", QStringList() << "-c 1" << m_sHostName);
if(ping.waitForFinished(250) ) {
while(ping.canReadLine()) {
QString line = ping.readLine();
if(line.contains("time=")) {
int iStart = line.indexOf("time=") + 5;
int iStop = line.indexOf(" ms");
QStringRef latency(&line, iStart, iStop-iStart);
m_vNetwork_s.append(time_s);
m_vLatency_ms.append(QString(latency.toLocal8Bit()).toDouble());
break;
}
}
}
#endif
【问题讨论】:
-
关于 Qt 的 ICMP,我找到了这个链接:lists.qt-project.org/pipermail/interest/2013-January/… 看起来你不能用 Qt 的网络类来做
标签: c++ qt ping qtnetwork qabstractsocket