j'utilise QProcess pour exécuter ping pour vérifier un hôte à être en ligne ou non ...fonctionnement ping avec QProcess, code de sortie toujours 2 si l'hôte accessible ou non
Le problème est que le code de sortie que je recevoir du signal Qprocess-> terminé est toujours 2 peu importe si je ping sur un hôte accessible ou inaccessible ..
Je suis ping continuellement dans un QTimer à un hôte (dont un dossier j'ai monté au client où le Qt application est en cours d'exécution) ...
lorsque j'attrape le code de sortie comme renvoyé par ping dans un slot connecté à QProcess-> terminé signal .. je reçois toujours code de sortie en tant que 2 ..
Je ne peux pas utiliser l'appel système direct par le biais du système (ping) car il bloque mon application pour le temps ping est actif ... je veux qu'il soit asynchrone, donc je suis passé à QProcess ...
ce qui suit est l'extrait de code:
//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";
}
}
le
cout<<"\n\nexitCode,exitStatus=="<<exitCode<<","<<exitStatus
ligne donne toujours 2,0 en sortie peu importe si 1.1.1.1 est ou 1.1.1.11 est un ping cinglé sur le terminal 1.1.1.1 est pingable et 1.1.1.11 n'est pas (je change bw ips par l'indicateur dBool qui est placé sur l'événement keypress pour simuler l'hôte en ligne/hors ligne afin que mon application puisse se comporter en conséquence)
être une grande aide ..
Merci.
liés: http://stackoverflow.com/questions/4629185/launch-and-write-to-terminal-in-qt –