Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ping
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Separator
Здравствуйте,
как отправить ping запрос и получить ответ с помощью QT?
Желательно использовать только стандартные библиотеки.
Dovgon
Посмотри сдесь
http://doc.qt.nokia.com/qt-maemo/network-n...ection-cpp.html
может поможет.
igor_bogomolov
Цитата(Separator @ 3.2.2011, 14:30) *
как отправить ping запрос и получить ответ с помощью QT?
Только через QProcess.

Как то так
void ConnectManager::startPingProces()
{
...
        ping_timer = new QTimer(this);
        connect(ping_timer, SIGNAL(timeout()), this, SLOT(enginePing()));
        ping_timer->start(100);
...
        ping_process = new QProcess(this);
        connect(ping_process,SIGNAL(finished(int,QProcess::ExitStatus)),
                this, SLOT(enginePingFinished(int,QProcess::ExitStatus)));
        enginePing();
}

void ConnectManager::enginePing()
{
   ...
#ifdef Q_OS_WIN32
    ping_process->start(QLatin1String("ping  -n 1 \"") + currentPingHost  + QLatin1String("\"") );
#else
    ping_process->start(QLatin1String("ping  -c 1 -W 1 \"") + currentPingHost  + QLatin1String("\"") );
#endif
}
kwisp
если запускать ping через QProcess может прав не хватить.
ping использует ICMP которая требует определённых прав.
Dovgon
если есть привилегии то это будет лучше всего
http://www.prog.org.ru/index.php?topic=906...g51459#msg51459
можно глянуть еще вот это
http://qt.shamangrad.net/doku.php?id=%D1%8...%81%D0%BE%D0%B2
Kagami
Цитата(kwisp @ 3.2.2011, 16:08) *
если запускать ping через QProcess может прав не хватить.
ping использует ICMP которая требует определённых прав.

Если пытаться самому открыть сокет для отправки/приема ICMP, то прав точно не хватит. Использовать утилиту ping через QProcess самое эффективное решение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.