Thread Script beenden ?
(31 answers)
Opened by BrownWolf at 2003-12-18 04:42
Also das Problem hatte ich auch. Es gibt in meinem Socket-Server einen Befehl "exit", den berechtigte Clients ihm senden können.
Ich muß aber garantieren, daß die Quittung für die Verarbeitung der Daten für die anderen Clients nicht verloren geht. Das heißt, wenn ich Daten auf Anforderung anderer Clients in der Datenbank eingetragen habe, muß! ich die Quittung an den Client senden, der diesen Auftrag gesendet hat. Ich kann natürlich diesen Auftrag vor Ausführung abweisen, indem ich einfach die Verbindung trenne, dann herrscht auch Klarheit auf Client-Seite. Ich kann aber nicht die Ausführung des Auftrages vornehmen und die Quittung nicht senden. Ich habe es so gelöst, daß ich erst von allen Clients, die dem Server etwas gesendet haben empfange. Damit starte ich auch die Verarbeitung, wenn die Daten vollständig eingegangen sind. Durch die Verarbeitung entstehen in den jeweiligen outbuf's Daten, die ich auf jeden Fall senden muß. Also sende ich in der hier geposteten until-Schleife erst mal alles das raus. Dann erst beginnt die Schleife neu mit dem Test des $exit_flag 's. Weil es durch den o.g. "exit"-Befehl gesetzt wurde, nimmt der Server keine neuen Daten mehr an, trennt sich von allen Clients und letztendlich endet der Server selbst. So wie ich ein $exit_flag benutze, könntest Du auch die Down-Zeit irgendwo setzen und wenn sie erreicht ist, endet Deine Schleife.\n\n <!--EDIT|steffenw|1072816827--> $SIG{USER} = sub {love 'Perl' or die};
|