Ich muss Dateien auf einen Remote-PC kopieren. Bevor ich das mache, muss ich prüfen, ob der PC erreichbar ist. Ich habe versucht mit ACE_OS::stat()
zu überprüfen, ob ein Verzeichnis existiert. Auf einigen Plattformen hat dies eine Zeitüberschreitung, die für mich ausreichend wäre, aber auf anderen Plattformen bleibt das Programm hängen.Wie ping einen anderen PC im selben lokalen Netzwerk mit ACE?
ACE bietet die ACE_Ping_Socket, also nehme ich an, dass es tut was ich will. Aber ich kann es nicht schaffen, nicht einmal mit LOCALHOST. Weiß jemand, wie man das macht?
#include "ace/Ping_Socket.h"
#include "ace/INET_Addr.h"
int main(int argc, char * argv[])
{
ACE_INET_Addr addr;
// instead of 127.0.0.1, insert IP of a remote PC
int i_set = addr.set("127.0.0.1:0");
ACE_Ping_Socket s;
int i_open = s.open(addr);
// if open works, PC is reachable, at least this is the idea...
// i_set = 0, but i_open = -1, even for 127.0.0.1
return 0;
}
Ich bin auch offen für Alternativen :-) ACE