crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Ping, Как отправить ping и получить ответ?
Separator
  опции профиля:
сообщение 3.2.2011, 14:30
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 14.4.2010
Пользователь №: 1629

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте,
как отправить ping запрос и получить ответ с помощью QT?
Желательно использовать только стандартные библиотеки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dovgon
  опции профиля:
сообщение 3.2.2011, 15:13
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 92
Регистрация: 5.1.2011
Пользователь №: 2325

Спасибо сказали: 3 раз(а)




Репутация:   0  


Посмотри сдесь
http://doc.qt.nokia.com/qt-maemo/network-n...ection-cpp.html
может поможет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 3.2.2011, 15:28
Сообщение #3


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(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
  опции профиля:
сообщение 3.2.2011, 16:08
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


если запускать ping через QProcess может прав не хватить.
ping использует ICMP которая требует определённых прав.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dovgon
  опции профиля:
сообщение 3.2.2011, 17:22
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 92
Регистрация: 5.1.2011
Пользователь №: 2325

Спасибо сказали: 3 раз(а)




Репутация:   0  


если есть привилегии то это будет лучше всего
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
  опции профиля:
сообщение 3.2.2011, 23:54
Сообщение #6


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Цитата(kwisp @ 3.2.2011, 16:08) *
если запускать ping через QProcess может прав не хватить.
ping использует ICMP которая требует определённых прав.

Если пытаться самому открыть сокет для отправки/приема ICMP, то прав точно не хватит. Использовать утилиту ping через QProcess самое эффективное решение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 1:29