AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TClientSocket: auf Verbindung warten???
Thema durchsuchen
Ansicht
Themen-Optionen

TClientSocket: auf Verbindung warten???

Ein Thema von romber · begonnen am 1. Sep 2004 · letzter Beitrag vom 2. Sep 2004
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

TClientSocket: auf Verbindung warten???

  Alt 1. Sep 2004, 20:59
Hallo!

Ich habe einen Timer, der ständig versucht die Verbindung mit dem Server herzustellen. Dazu noch ein Paar Zeilen, die den Status des Sockets signalisieren.

Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not ClientSocket.Socket.connected then
try ClientSocket.Open
finally
TryLogin //TryLogin ist eine Funktion, also unwichtig
end;
end;
...

procedure TForm1.ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
StatusBar1.Panels.Items[0].Text := 'Verbunden';
end;

procedure TForm1.ClientSocketDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
StatusBar1.Panels.Items[0].Text := 'Nicht verbunden';
end;

Manchmal zeigt in des StatusBar "verbunen", obwohl der ServerSocket keine active Connections meldet und die Daten den Socket nicht erreichen. Was ist das? Warum passiert das? Wie halte ich die Verbindung permanent aktiv, auch wenn keine Daten fließen? Ich brauche eine sehr sichere Verbindung zum Server!

Danke!
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#2

Re: TClientSocket: auf Verbindung warten???

  Alt 2. Sep 2004, 15:18
Hallo,

wenn ich mich recht entsinne kann ein Client die Verbindung verlieren ohne das das DisConnect-Ereignis ausgelöst wird. Sicher kriegt immer nur ein Server den DisConnect mit. Das ist ja auch nicht weiter tragisch da der Client es wieder merkt wenn er was zum Server schicken will, dann schaut er vorher kurz nach und verbindet sich ggf. wieder. Problematisch wirds nur wenn auch der server mal was an den Client schicken will und der ist weg. Ich benutze für ein ähnliches Problem bei mir quasi ne Doppelverbindung wo auf jeder Seite jeweils ein Client und ein server stehen die sich verbinden. Wenn dann die Verbindung abkackt kriegts wenigstens eine Seite mit.
Gruß
UweR
  Mit Zitat antworten Zitat
Golze

Registriert seit: 26. Aug 2004
Ort: Berlin
32 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: TClientSocket: auf Verbindung warten???

  Alt 2. Sep 2004, 15:30
HI,
hatte das Problem mal etwas anders gelöst.
Wenn eine Verbindung einmal zustande gekommen ist, wird durch den Timer (1 sec.) eine kleine Message vom Client an den Server gesentet. Der muß die dann nur noch bestätigen, also im Prinzip spiegeln. Kommt die Antwort innerhalb eines plausiblen Zeitfensters, ist die Verbindung da. Andernfalls ist sie weg oder der Status des Sockets hat mir das bereits mitgeteilt.

Grüße Kay
Kay Golze
Wo Gold ist, muß es auch glänzen.
  Mit Zitat antworten Zitat
Fourcorner

Registriert seit: 26. Aug 2004
Ort: Grenzach-Wyhlen
51 Beiträge
 
Delphi 7 Personal
 
#4

Re: TClientSocket: auf Verbindung warten???

  Alt 2. Sep 2004, 21:17
Hallo,
ich habe das Probelem wie folgt gelöst.
Wenn Einer der beiden (also Client oder Server) die Verbindung kappt (bei mir immer bei Form.onDestroy) sendet dieser an den Clienten bzw. Server eine kurze Meldung, dass dieser nun Disconnected.
Der Empfänger muss dann nurnoch die information weiterverarbeiten (client.free...) .

Es wäre natürlich möglich, dass beide auf einmal Disconnecten...( ) aber hoffen wir das dies nicht passiert.
Julian
  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 05:35 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