![]() |
TCPServer hängt sich nach Exception auf
Guten Morgen,
gleich mal vorweg: Indy10 - mit Delphi 2005 installiert... nun zu meinem Problem: Und zwar habe ich einen Client und einen Server erstellt, der eigentlich recht gut funktioniert. Bis auf das eine kleine, aber entscheidende Problem: Wenn mindestens ein Client mit dem Server verbunden ist und ich beim Server den Befehl:
Delphi-Quellcode:
ausführe, d.h. den Server herunterfahren will, hängt sich das Server-Programm komplett auf. Selbst wenn ich das Programm debugge geht nichts mehr vorwärts, genau ab dem oben genannten Befehl. Ein paar weitere Infos: CPU-Last ist gleich null, Server ist von einem Client nich mehr erreichbar, d.h. er ist offline.
Server.Active := False;
Ich weiß nicht mehr woran das ganze liegen kann... Ich hab bisher ein kleines WorkArround geschrieben, das bevor ich den oben genannten Befehl aufrufe, jedem Client eine Message schickt, auf die der Client automatisch vom Server disconnected, d,h. Client.Disconnect aufruft. Aber das kann es in meinem Augen doch nicht sein?! PS: Ein ähnliches Thema habe ich zwar gefunden, aber ist das auch auf mein Problem anwendbar? ( ![]() Wenn ihr Code braucht, kann ich den gerne noch anhängen, nur bin ich grad am Internet-Rechner und hab ihn nich parat! Ich hoffe einer von euch kann mir da weiter helfen! mfg Armin |
Re: TCPServer hängt sich nach Exception auf
Das Problem hatten wir schonmal glaub ich.
Hier die lösung du must im Ereignis OnBeforDisconnect erst alle Clients rauschmeisen |
Re: TCPServer hängt sich nach Exception auf
Finde das Ereignis irgendwie nicht?! Oder bin ich nur zu blöd zum finden?!
Hab grad außerdem mal in der DP nach dem Begiff "OnBeforDisconnect" gesucht, aber nix gefunden! Kannst du mir da eventuell weiterhelfen?! wäre echt klasse, bin total am verzweifeln :cry: |
Re: TCPServer hängt sich nach Exception auf
Also sollte es nur daran scheitern, das heisst auch nicht "OnBeforDisconnect" sondern
![]() Allerdings findet sich auch dazu nichts in der DP :( |
Re: TCPServer hängt sich nach Exception auf
@Meflin: Soweit war ich auch schon ;) aber wie du schon gesagt hast - Fehlanzeige!
Allerdings habe ich die Lösung des Problems, jedenfalls ist bisher kein weiterer Fehler aufgetreten! Und zwar habe ich ja eine eigene Prozedur geschrieben, die mir den Server schließt:
Delphi-Quellcode:
Jetzt wäre es noch klasse, wenn das jemand von euch testen könnte und/oder Äußerungen, Kritik etc. posten könnte!
// Variable Server ist vom Typ TIdTCPServer
// eventl. muss die Unit "IdContext" zu den uses-Klauseln hinzugefügt werden, // weil das nicht automatisch gemacht wird function StopServer: Boolean; var CL : TList; i : Integer; begin // auf diesen Teil kam ich durch den Tipp von franktron CL := Server.Contexts.LockList; try for i := 0 to CL.Count - 1 do Server.Contexts.Remove(ClientList.Items[0]); finally CL.Free; Server.Contexts.UnlockList; end; // Server schließen try Server.Active := False; // <-- hier trat bisher immer der Fehler auf // d.h. das Programm stand hier komplett still except Result := False; end; if not Server.Active then begin Server.Bindings.Clear; Result := True; end else Result := False; end; |
Re: TCPServer hängt sich nach Exception auf
Zitat:
![]() Es funktionierte ja auch bis einschließlich Delphi6 einwandfrei. Um schlussfolgern zu können, ob es sich um dasselbe Problem handelt, wäre es nun sehr interessant, ob Deine ALTE Lösung mit Delphi6 funktioniert, falls Du die Möglichkeit hast, das auf Delphi 6 zu testen. Vielen Dank, falls Du mal Zeit dafür finden solltest, genau das zu testen ! Gruß stoxx |
Re: TCPServer hängt sich nach Exception auf
Habe hier auf der Arbeit sogar Delphi 6 - wenn ich Zeit habe teste ich es gern mal für dich, ALLERDINGS liege ich in meinem Zeitplan, bedingt durch dieses bescheidene Problem ca 2 Wochen zurück - gerechtnet auf die 11 Wochen, wo ich hier bin ist das leider sehr viel. Daher weiß ich net ob ich dazu komme! Aber ich werds probieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz