• 5594阅读
  • 4回复

[提问]xp下ping功能,有没有什么函数时判断成功或者失败的 [复制链接]

上一主题 下一主题
离线wangyan23888
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-17

下面是简单的代码:
cmd = new QProcess(this);
cmd->setStandardOutputFile("output.txt");
cmd->start("ping 192.168.1.139");
如果是通的怎么txt里面是

Pinging 192.168.1.168 with 32 bytes of data:






Reply from 192.168.1.168: bytes=32 time<1ms TTL=64


Reply from 192.168.1.168: bytes=32 time<1ms TTL=64


Reply from 192.168.1.168: bytes=32 time<1ms TTL=64


Reply from 192.168.1.168: bytes=32 time<1ms TTL=64


Ping statistics for 192.168.1.168:


    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),


Approximate round trip times in milli-seconds:


    Minimum = 0ms, Maximum = 0ms, Average = 0ms
就是我不要这些内容,我想要那种判断通与不通的一个点,这样我就好处理了。谢谢

离线friendbaby

只看该作者 1楼 发表于: 2013-12-17
百度搜索ping源代码,自己重新实现ping,可判断是否成功
或者
根据返回字段判断,比如 判断 Lost = 0 (0% loss),如果是100,就是不通。
Smiling is best language , can express everything , also can conceal everything.
离线wangyan23888

只看该作者 2楼 发表于: 2013-12-17
回 1楼(friendbaby) 的帖子
嗯,谢谢,这样勉强实现了我的要求
离线wangyan23888

只看该作者 3楼 发表于: 2013-12-27
回 1楼(friendbaby) 的帖子
ping时怎么将其停止掉?谢谢
离线wangyan23888

只看该作者 4楼 发表于: 2013-12-27
回 2楼(wangyan23888) 的帖子
在linux下,如果不通qDebug()怎么没有消息返回的?和xp下不一样?
    cmd = new QProcess;
    cmd->start("ping 192.168.1.122");
    connect(cmd, SIGNAL(readyRead()), this, SLOT(readOutput()));

void Widget::readOutput()
{
    output = cmd->readAll();
    qDebug()<<"11=="<<output;
}
快速回复
限100 字节
 
上一个 下一个