Hallo zusammen
ich habe folgendes Problem:
ich bin dabei ein Programm zu schreiben, dass Status Infos aus ca. 100 CPUs holt und Befehle an diese übermittelt. Nun kann es vorkommen dass eine CPU aus diversen Gründen nicht erreichbar ist. Alle CPUs sind über Ethernet angeschlossen.
Wenn die angesprochenen CPUs erreichbar sind funktioniert alles ohne Probleme. Wenn eine IP nicht erreichbar ist bleibt er in der Zeile:
fds.rfd = libnodave.openSocket(102, ip);
für eine längere Zeit (10 sek ) stehen macht dann noch ein paar Zeilen und beendet dann das Programm komplett obwohl sich dieses in einer endlos Schleife befindet....

Die Ausgabe sagt folgendes:
openSocketw.c:bind Socket error: NO error
(Schritt steht 10 Sek und gibt anschließend den Wert 0 zurück)
Couldn't open TCP connaction to IP

Danach ist das Programm beendet obwohl dahinter noch Code steht der ausgeführt werden sollte... mal abgesehen von einem unbedingten Rücksprung zur wiederholung des kompletten Programms.


Aufgrund der Menge der CPUs darf ein verbindungsaufbau maximal ein paar ms dauern, was er in der Regel auch tut, nur im Fall dass nicht erreichbar muss entsprechend der Befehl abgebrochen werden und mit dem nächsten weiter gemacht werden.

Was kann ich da machen?

Danke im voraus für Ideen aller Art

Gruß aus dem Sauerland
Sebastian