Hallo,
und wieder hab ich eine Frage. Und zwar ist folgende Situation:
Es gibt 4 Prozesse.
Server Parent
Server Child
Time Child
und ein Client der it Server Parent verbindet und dann ein Server Child zugeteilt bekommt.
Der Time Child Prozess überprüft die aktuelle Zeit, ob ein bestimmter Zeitpunkt erreicht wurde. Ist dieser Zeitpunkt erreicht, dann soll folgendes passieren:
Die Clients sollen das zeitnah mitgeteilt bekommen, d.h. sie sollten ohne Anfrage von diesem Ereignis erfahren können. Aber jeder Client ist bereits in einer Art blockierendem Zustand, da in einer While Schleife auf Tastatur Eingabe gewartet wird, welche Aktion der Benutzer tätigen möchte. Also ein Menue auf der Konsole.
Wenn die Clients das Ende Zeichen erkannt haben, dann sollen sie eine Mitteilung an ihren Server Child senden. Das geht dann über die Socket Verbindung, kein Problem.
Der Server Child soll sich dann auch beenden, nachdem er das Ok vom Client hat.
Ich weiß nicht wie der Client das Zeit Ende mitbekommen soll.
Hinweise:
Ich habe auch einen shared Memory Bereich, wo jeder Server Child Zugriff hat. Im shared memory wird auch von Time Child das Zeit ende eingetragen.
Das Problem ist, dass Server Child ja aber bereits mit recv() auf Anfragen von seinem Client wartet/blockiert und der Client ja auch auf Eingaben vom Benutzer wartet per scanf(), also auch blockiert.
Nimmt man da evtl. eine weitere Socket Verbindung im Server Child und client? Also extra eine für die Zeit Ende Mitteilung? Oder wie macht man sowas?
und wieder hab ich eine Frage. Und zwar ist folgende Situation:
Es gibt 4 Prozesse.
Server Parent
Server Child
Time Child
und ein Client der it Server Parent verbindet und dann ein Server Child zugeteilt bekommt.
Der Time Child Prozess überprüft die aktuelle Zeit, ob ein bestimmter Zeitpunkt erreicht wurde. Ist dieser Zeitpunkt erreicht, dann soll folgendes passieren:
Die Clients sollen das zeitnah mitgeteilt bekommen, d.h. sie sollten ohne Anfrage von diesem Ereignis erfahren können. Aber jeder Client ist bereits in einer Art blockierendem Zustand, da in einer While Schleife auf Tastatur Eingabe gewartet wird, welche Aktion der Benutzer tätigen möchte. Also ein Menue auf der Konsole.
Wenn die Clients das Ende Zeichen erkannt haben, dann sollen sie eine Mitteilung an ihren Server Child senden. Das geht dann über die Socket Verbindung, kein Problem.
Der Server Child soll sich dann auch beenden, nachdem er das Ok vom Client hat.
Ich weiß nicht wie der Client das Zeit Ende mitbekommen soll.
Hinweise:
Ich habe auch einen shared Memory Bereich, wo jeder Server Child Zugriff hat. Im shared memory wird auch von Time Child das Zeit ende eingetragen.
Das Problem ist, dass Server Child ja aber bereits mit recv() auf Anfragen von seinem Client wartet/blockiert und der Client ja auch auf Eingaben vom Benutzer wartet per scanf(), also auch blockiert.
Nimmt man da evtl. eine weitere Socket Verbindung im Server Child und client? Also extra eine für die Zeit Ende Mitteilung? Oder wie macht man sowas?