logikfrage... (netzwerk)

matt

Erfahrenes Mitglied
hi leute!

ich müsste für ein client-server-programm, das sich per TCP verbindet, etwas hinzuprogrammieren.
und zwar soll sich der client in periodischen abständen beim server melden. das soll per UDP geschehen. auf diese meldungen hin soll der server eine datei prüfen. ist sie alt genug, verbindet sich dieser per TCP mit dem client. beide applikationen sollen natürlich stets weiterlaufen und nicht beendet werden.

das prüfen der datei und das verbinden per TCP hab ich schon hinbekommen. das programm war anfangs etwas anders geplant. nun stellt sich für mich die frage, wie ich das auf clientseite hinbekomme, dass der client einmal auf eine TCP-verbindung wartet und "hört", andererseits aber auch in einem bestimmten abstand immer wieder signale an den server per UDP schickt.

theoretisch könnte ich doch einen child-prozess starten, der dann die periodischen signale sendet. ich weiß aber nicht, wie das funktioniert und ob das sinnvoll wäre. kann mir jemand ein paar theoretische oder auch praktische tipps geben, wie ich das zusammenschustern kann?

noch etwas: gibt es in c so etwas wie eine timer-funktion, um nach einer bestimmten zeit eine aktion auszuführen?

vielen dank für eure hilfe!
matt
 
zu deinem timer problem kann ich dir schon was sagen, zum Rest leider nein -> hab noch nix mit netzwerken programmiert.

Zum Timer:
Code:
// Starteten des Timer mit der Nummer 1, Timerintervall: 200ms
// Bei dieser Variante kannst du auf die Nachricht WM_TIMER in der Funktion OnTimer( UNIT nTimerID )
SetTimer(1, 200, NULL)
du kannst bei der Funktion SetTimer auch statt dem NULL eine CALLBACK- Funktion aufrufen.

hoffe das hilft weiter
mfg Red Eagle
 
hm... in meinen man-pages steht nichts über die funktion SetTimer. kann das sein, dass die nicht standard-c (ansi-c) ist? werde erstmal sleep() ausprobieren.

mein logik-problem is übrigens gelöst, hatte aber auch nicht viel mit netzwerken zu tun (das war nur der hintergrund). ich bastel einen thread. und dank dieser anleitung weiß ich auch, wie das geht :).

trotzdem danke für deine bemühungen!

matt
 
Zurück