я использую QProcess выполнить пинг для проверки хоста, чтобы быть онлайн или нет ...работает пинг с QProcess, код выхода всегда 2, если хост достижим или не
Проблема заключается в том, что код выхода, я получить из Qprocess-> готового сигнала всегда 2 независимо от того, могу ли я ping достижимый хост или недостижимый.
Я постоянно пинговаю в QTimer хосту (чья одна папка я установил на клиенте, где Приложение Qt запущено) ...
, когда я улавливаю код выхода, возвращенный ping, в слот, подключенный к QProcess-> готовому сигналу .. я всегда получаю код выхода как 2 ..
Я не могу использовать прямой системный вызов через систему (ping), поскольку он зависает моим приложением на время, когда ping активен ... Я хочу, чтобы он был асинхронным, поэтому я переключился на QProcess ...
следующий фрагмент кода:
//Pinging function called inside a timer with timout 1000
QString exec="ping";
QStringList params;
if(!dBool)
{
//params << "-c1 1.1.1.11 -i1 -w1;echo $?";
params <<" 1.1.1.11 -i 1 -w 1 -c 1";//wont ping
cout<<"\n\npinging 11 ie wont ping";
}
else
{
//params << "-c1 1.1.1.1 -i1 -w1;echo $?";
params <<" 1.1.1.1 -i 1 -w 1 -c 1";//will ping
cout<<"\n\npinging 1 ie will ping";
}
ping->start(exec,params);
// the slot that connects with QProcess->finished signal
void QgisApp::pingFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
cout<<"\n\nexitCode,exitStatus=="<<exitCode<<","<<exitStatus;//always 2,0!!
if(exitCode==0)
//if(dBool)
{
connectivity=true;
cout<<"\n\nONLINE";
}
else
{
connectivity=false;
cout<<"\n\nOFFLINE";
}
}
cout<<"\n\nexitCode,exitStatus=="<<exitCode<<","<<exitStatus
линия всегда дает 2,0 в качестве выходного сигнала независимо от того, если 1.1.1.1 пингуется или 1.1.1.11 является pinged на терминале 1.1.1.1 является pingable и 1.1.1.11 не является (я переключаю bw ips через флаг dBool, который установлен на событие нажатия клавиши, чтобы имитировать онлайн-хостинг, чтобы мое приложение могло вести себя соответственно).
Любые входы быть большой помощью ..
Спасибо.
, связанные с: http://stackoverflow.com/questions/4629185/launch-and-write-to-terminal-in-qt –