crossplatform.ru

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


  Ответ в Ping
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Kagami Дата 3.2.2011, 23:54
 
Цитата(kwisp @ 3.2.2011, 16:08) *
если запускать ping через QProcess может прав не хватить.
ping использует ICMP которая требует определённых прав.

Если пытаться самому открыть сокет для отправки/приема ICMP, то прав точно не хватит. Использовать утилиту ping через QProcess самое эффективное решение.
Dovgon Дата 3.2.2011, 17:22
  если есть привилегии то это будет лучше всего
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
kwisp Дата 3.2.2011, 16:08
  если запускать ping через QProcess может прав не хватить.
ping использует ICMP которая требует определённых прав.
igor_bogomolov Дата 3.2.2011, 15:28
 
Цитата(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
}
Dovgon Дата 3.2.2011, 15:13
  Посмотри сдесь
http://doc.qt.nokia.com/qt-maemo/network-n...ection-cpp.html
может поможет.
Separator Дата 3.2.2011, 14:30
  Здравствуйте,
как отправить ping запрос и получить ответ с помощью QT?
Желательно использовать только стандартные библиотеки.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 11:56