Verfasst: Sonntag 24. August 2008, 09:53
guten Morgen,
ich vermute ich bekomme meinen Server nie ganz so hin, wie ichs gerne hätte. Ich poste einfach mal weiter hier in diesen Thread, da mein nächstes Problem sich auch immer noch irgendwie mit auf meinen Eingangspost bezieht.
Also ich habe folgendes Problem: Bei bestehender Netzwerkverbindung Funktioniert alles wie vorgesehen. Aufgund meiner - zugegeben etwas speziellen LAN- Umgebung (die genauen Angaben sind eigentlich nicht so wichtig)- kommt es manchmal unvorhergesehen zu Verbindungsabbrüchen zwischen Server und Client. Weder Server noch Client stört das wirklich, so macht es den Eindruck. Allerdings bekomme ich keine Saubere Verbindung nach so einem Abbruch mehr hin. Der Client versucht sich auf dem Port auf dem der Server lauscht zu verbinden - der Server sendet daraufhin auch seine Antwort - aber dannn verläuft die Nachricht im Sande... Bei Server und Client tritt nach einer gewissen Zeit ein Timeout auf.
Das Problem das TCP-Nachrichten vom Server nicht ankommen tritt nur auf, wenn vorher die Netzwerkverbindung unterbrochen wurde. Momentan ist die einzige Möglichkeit wieder eine Funktionierende Vebindung zu bekommen ein Neustart des Servers.
Lange Rede - kurzer Sinn: Gibt es eine Möglichkeit für mich zur Laufzeit des Servers den Server neu zu starten? Mein Server ist ja instanziiert mit
self.dispatcher = SocketServer.TCPServer(('', PORT), self.HTTPService)
self.dispatcher.serve_forever()
In der Doku zu Python 2.6b3 habe ich gesehen das es dort ein gegenstück zu 'serve_forever' gibt - 'shutdown()'. Wenn ich das richtig verstehe, wäre das glaube ich genau das was ich suche. Gibt es sowas auch selber gebaut für python 2.5?
Ich habe schon versucht die Methode 'server_vorever' des streamrequeshanderl nachzubauen. Dort habe ich einfach eine Möglichkeit eingebaut die Endlosschleife zu unterbrechen. Aber scheinbar muss ich noch mehr machen um den Server sauber zu stoppen und anschliessend wieder ordnungsgemäß ans laufen zu bekommen.
Vielleicht gibt es ja noch andere Möglichkeiten den Server neu zu starten?
ich vermute ich bekomme meinen Server nie ganz so hin, wie ichs gerne hätte. Ich poste einfach mal weiter hier in diesen Thread, da mein nächstes Problem sich auch immer noch irgendwie mit auf meinen Eingangspost bezieht.
Also ich habe folgendes Problem: Bei bestehender Netzwerkverbindung Funktioniert alles wie vorgesehen. Aufgund meiner - zugegeben etwas speziellen LAN- Umgebung (die genauen Angaben sind eigentlich nicht so wichtig)- kommt es manchmal unvorhergesehen zu Verbindungsabbrüchen zwischen Server und Client. Weder Server noch Client stört das wirklich, so macht es den Eindruck. Allerdings bekomme ich keine Saubere Verbindung nach so einem Abbruch mehr hin. Der Client versucht sich auf dem Port auf dem der Server lauscht zu verbinden - der Server sendet daraufhin auch seine Antwort - aber dannn verläuft die Nachricht im Sande... Bei Server und Client tritt nach einer gewissen Zeit ein Timeout auf.
Das Problem das TCP-Nachrichten vom Server nicht ankommen tritt nur auf, wenn vorher die Netzwerkverbindung unterbrochen wurde. Momentan ist die einzige Möglichkeit wieder eine Funktionierende Vebindung zu bekommen ein Neustart des Servers.
Lange Rede - kurzer Sinn: Gibt es eine Möglichkeit für mich zur Laufzeit des Servers den Server neu zu starten? Mein Server ist ja instanziiert mit
self.dispatcher = SocketServer.TCPServer(('', PORT), self.HTTPService)
self.dispatcher.serve_forever()
In der Doku zu Python 2.6b3 habe ich gesehen das es dort ein gegenstück zu 'serve_forever' gibt - 'shutdown()'. Wenn ich das richtig verstehe, wäre das glaube ich genau das was ich suche. Gibt es sowas auch selber gebaut für python 2.5?
Ich habe schon versucht die Methode 'server_vorever' des streamrequeshanderl nachzubauen. Dort habe ich einfach eine Möglichkeit eingebaut die Endlosschleife zu unterbrechen. Aber scheinbar muss ich noch mehr machen um den Server sauber zu stoppen und anschliessend wieder ordnungsgemäß ans laufen zu bekommen.
Vielleicht gibt es ja noch andere Möglichkeiten den Server neu zu starten?