AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [Indy] TCPServer mit aktiver Verbindung beenden
Thema durchsuchen
Ansicht
Themen-Optionen

[Indy] TCPServer mit aktiver Verbindung beenden

Ein Thema von Duffy · begonnen am 11. Sep 2004 · letzter Beitrag vom 22. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#1

[Indy] TCPServer mit aktiver Verbindung beenden

  Alt 11. Sep 2004, 15:57
Hallo alle zusammen,
ich brüte schon seit einiger Zeit daran. Wie kann einen Indy TCPServer mit aktvier Verbindung beenden, ohne daß ich die Fehlermeldung "Terminate Thread Timeout" bekomme. Irgendwie muß es gehen!

Danke
Claus
Miniaturansicht angehängter Grafiken
terminate_thread_timeout.jpg  
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 11. Sep 2004, 18:07
Versuch doch mal folgendes, TCP-Server mit .Active zu deaktivieren (einfach false setzen).
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#3

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 01:02
Hallo Dax,
danke für deine Antwort. Das habe ich schon probiert. Weiter bin ich durch alle Verbindungen iteriert und habe sie sogar Client-seitig beendet. Alles nichts genützt.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 13:44
Dann verstehe ich dein Problem nicht. Versuchs doch mal mit den neuen Indy-Komponenten, falls deine schon älter sind.
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#5

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 14:00
Hallo Dax,
Zitat von Dax:
Dann verstehe ich dein Problem nicht. Versuchs doch mal mit den neuen Indy-Komponenten, falls deine schon älter sind.
ich benutze die Indy's 9.0.0.14. Das Problem was ich habe ist, sofern noch ein Client offen ist, daß ich den Server nicht sauber beenden kann, siehe Fehlermeldung. Die Clients sind so programmiert, daß sie automatisch wieder die Verbindung zun Server suchen. Gehe ich jetzt her und beende einen Client nach dem Anderen, dann klappt es auch den Server ohne Fehlermeldung zu schließen.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 14:01
Dann schicke doch einen Destroy-Befehl an die Clients, die dann die Verbindgung beenden und nicht versuchen, neu zu verbinden.
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#7

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 14:05
Hallo Dax,
sie sollen sich ja wieder verbinden können, aber das automatisch. Ich sende dem Client schon einen Shutdown Befehl, der dann die Verbindung Client-seitig schließt. Trotzdem wird der Server nicht mit seiner Thread-Bearbeitung fertig.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 14:28
Dann iterier doch durch die Threads des Servers und Terminiere sie...
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#9

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 15:20
Hallo Dax,
auch das habe ich bereits versucht ...
Delphi-Quellcode:
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  ACommBlock: TCommBlock;
  I: Integer;
begin
  ACommBlock.Command := CmdShutdown;
  for I := 0 to Server.Threads.LockList.Count - 1 do
  begin
    TIdPeerThread(Server.Threads.LockList[I]).Connection.WriteBuffer(ACommBlock, SizeOf(ACommBlock), True); // sendet Shutdown Meldung an den Client, der die Verbindung selber schließt
    TIdPeerThread(Server.Threads.LockList[I]).Connection.DisconnectSocket; // Sicher ist sicher !!!
    TIdPeerThread(Server.Threads.LockList[I]).Stop; // Terminate etc. alles ohne Erfolg
  end;
  CanClose := True;
end;
danke trotzdem. Irgendwo, gibt es einen Haken in meinem Code, der das verursacht. Aber was.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#10

Re: [Indy] TCPServer mit aktiver Verbindung beenden

  Alt 12. Sep 2004, 15:24
Versuch doch mal anstatt .Stop lieber .Terminate..
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz