C++代码读取ping的网络延时

利用C++代码实现读取ping工具的网络延时数据

C++代码读取ping的网络延时

直接上代码

#include <QCoreApplication>
#include <QTextCodec>
#include <QProcess>
#include <iostream>
#include <Windows.h>


void checkOnline( QString ip )
{
  QProcess exc;
  QTextCodec* codec = QTextCodec::codecForName( "GBK" );
  QString cmdstr = "ping " + ip; //ping 192.168.15.90  -n 2 -w 4000
  while ( true )
  {
    exc.start( cmdstr ); //执行ping
    exc.waitForFinished( -1 ); //等待ping完成
    QString  outstr = codec->toUnicode( exc.readAll() ); //获取ping结果
    //返回不等于-1,说明ping结果包含"往返行程的估计时间"字段,则说明ping成功,网络可达;等于-1,表示没有此字段,说明ping不通
    QString test = "ms";
    int flag = outstr.indexOf( test );
    if ( ( -1 != flag ) )
    {
      int start_num = flag - 1;
      while ( true )
      {
        if ( outstr.mid( start_num - 1, 1 ) == "<" || outstr.mid( start_num - 1, 1 ) == "=" )
        {
          break;
        }
        start_num --;
      }
      QString time = outstr.mid( start_num, flag - start_num );
      std::cout << time.toStdString() << std::endl;
      qDebug( "Onlinen" );
    }
    else
    {
      qDebug( "Offlinen" );
    }
  }
}
int main( int argc, char* argv[] )
{
  QCoreApplication a( argc, argv );
  checkOnline( "192.168.15.90" );

  return a.exec();
}

代码运行结果如下

C++代码读取ping的网络延时

原文链接: https://www.cnblogs.com/zx-hit/p/12809663.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/196748

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午7:20
下一篇 2023年2月12日 下午7:21

相关推荐