Einzelnen Beitrag anzeigen

romber

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

TCPClient/TCPServer: Server fällt aus, Clients warten???

  Alt 22. Feb 2005, 11:41
Hallo Leute!

Ich muss euch noch n'bißchen mit TCP Sockets belästigen.
Wenn man z. B. eine einfachste TCP-Connection mit TTcpServerSocket und TTcpClientSocket aufbaut und dann der Serverteil, warum auch immer, abstürzt, bleibt den ClientSocket "verbunden". Netürlich bleibt er in Wirklichkeit nicht verbunden, da der Server offline ist. Ich habe aber einen Timer, der überprüfft ständig, ob der Client noch online ist:

Server:

Code:
...
ServerSocket1.Port := 12345;
ServerSocket.Open;
..
Client:

Code:
...
ClientSocket1.Host := 'xxx.xxx.xx.x';
ClientSocket1.Port := 12345;
ClientSocket1.Open;
...

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if ClientSocket1.Socket.Connected then
StatusBar1.Panels.Items[0].Text := 'Verbunden'
else
StatusBar1.Panels.Items[0].Text := 'Nicht verbunden';
end;
...
Ich kille den Serverteil über Task-Manager aber die Connected-Eigenschaft des Clients bleibt auf True. Das passiert wahrscheinlich, weil des ServerSocket nicht geschlossen wurde, glaube ich. Kann man es irgendwie vermeiden?

Ich möchte es so machen, dass die Clients IMMER auf den Server warten, wenn der mal offline ist.
Wenn Client ausgeführt wird und Server offline ist, ist es natürlich kein Problem - man löst es einfach mit einem Timer, der mit regelmäßigen Abständer zu connecten versucht. Was ist zu tun, wenn Server mal plözlich ausfällt? Wie lasse ich die Clients automatisch wieder connecten, wenn Server wieder online ist?

Danke!

MfG,
Ralf
  Mit Zitat antworten Zitat