AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TClientsocket => OnDisconnect wird nicht ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

TClientsocket => OnDisconnect wird nicht ausgeführt

Ein Thema von delphis spassbremse · begonnen am 2. Okt 2006 · letzter Beitrag vom 3. Okt 2006
Antwort Antwort
delphis spassbremse
(Gast)

n/a Beiträge
 
#1

TClientsocket => OnDisconnect wird nicht ausgeführt

  Alt 2. Okt 2006, 23:58
Hallo....

ich habe gerade ein großes Probelem...

ich sitze gerade an meiner InternetCafé Software
und merke, das wenn der Server verreckt, oder ich den Prozess kille,
dass beim Clienten weder OnDisconnect oder OnError ausgeführt wird..

kann mir da jemand einen Rat geben?
( ausser, dass ich die Indys nehmen sollte )
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: TClientsocket => OnDisconnect wird nicht ausgeführt

  Alt 3. Okt 2006, 00:01
Wenn die clients an eine verreckte Verbindung was senden sollten, dann sollte ein "Software caused connection abort" kommen, sprich dann sollte ein OnError ausgelöst werden. Führ doch einfach eine Art Ping ein und deine Probleme sollten gelöst sein.

Ach ja - oder nutze die Indys
  Mit Zitat antworten Zitat
delphis spassbremse
(Gast)

n/a Beiträge
 
#3

Re: TClientsocket => OnDisconnect wird nicht ausgeführt

  Alt 3. Okt 2006, 00:06
das stimmt..... nur ich will wenn der server verreckt, das sofort alle clients gesperrt werden.... (tun sie auch wenn der server normal beendet wird)....

und das zeite... ich hab es so gemacht, das beim onerror ereignis ein timer anspringt, der nach 60 sekunden wiederverbinden will.. nur das tut der nur wenns halt normal beendet wurde und wenn dr prozess gekillt wurde und der server neu gestartet wird findet er ihn nich und der timer bleibt stehen...

hier mein onerror erignis:

Delphi-Quellcode:
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
Errorcode := 0;
scrollbox1.Color := clred;
label12.Visible := true;
label13.Visible := true;
edit1.Visible := false;
button4.Visible := false;
timer2.Enabled := true;
label15.Visible := true;
label16.Visible := true;
label17.Visible := true;
label19.Visible := true;
label20.Visible := false;
//style
form1.Top := 0;
form1.Left := 0;
form1.Height := screen.height;
form1.Width := screen.Width;
form1.BorderStyle := bsnone;
form1.FormStyle := fsstayontop;
form1.BringToFront;

timer1.Enabled := false;
end;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: TClientsocket => OnDisconnect wird nicht ausgeführt

  Alt 3. Okt 2006, 00:14
*Urgs*

Diese OnError Behandlung bringt mir gar nix. Zum einen schreibst du selber, dass dieses nicht ausgelöst wird und zum anderen muss ich mal anmerken, dass die Komponentenbenennung mehr als miserabel ist. Ich kann mir hier nix zusammen reimen. Auch ist die Frage das nicht vllt. allgemein in eine Methode zu packen die dann abhängig davon ob verbunden oder nicht die hier bearbeiteten Komponenten umstellt. Dann kannst du diese Methode im Connect und im Error/Disconnect aufrufen. Und dann muss ich unbedingt noch anmerken, dass das zugreifen auf Form Eigenschaften über ihre eigene globale Instanzenvariable völlig, naja, tödlich/giftig, etc ist. Also entferne so oder so bitte die gesamten "Form1." Dinger...

Und dann empfiehlt es sich bei einem aufgetretenen Fehler den Socket zu schliessen. Meisten kann man im OnError nichts mehr mit dem Socket anfangen. Da er aber nicht selber geschlossen wird ist es vorteilhaft hier im OnError ein Socket.Close; aufzurufen. Schon dadurch sollte sogar im Fehlerfall dein OnDisconnect ordentlich aufgerufen werden.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:47 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