QT实现ping功能

    QProcess exc;
    QTextCodec *codec = QTextCodec::codecForName("GBK");
    while(!App::ping_while_stop)
    {
        update_ping_ip();
        QString cmdstr="ping -n 1 -w 1000 ";
        cmdstr = cmdstr + App::ssh_ip;
        exc.start(cmdstr);//执行ping
        exc.waitForFinished(-1);//等待ping完成
        QString  outstr=codec->toUnicode(exc.readAll());//获取ping结果
        //返回不等于-1,说明ping结果包含"往返行程的估计时间"字段,则说明ping成功,网络可达;等于-1,表示没有此字段,说明ping不通
        if((-1 !=outstr.indexOf("往返行程的估计时间")))
        {
           App::ping_ip_state = true;
           //qDebug("在线\n");
        }
        else
        {
           App::ping_ip_state = false;
           //qDebug("离线\n");
        }
        myHelper::sleep(1000);
    }

 

你可能感兴趣的:(QT)