AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Verbindung beendet, weder Client noch Server merken es
Thema durchsuchen
Ansicht
Themen-Optionen

Verbindung beendet, weder Client noch Server merken es

Ein Thema von halinchen · begonnen am 11. Apr 2007 · letzter Beitrag vom 11. Apr 2007
 
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#1

Verbindung beendet, weder Client noch Server merken es

  Alt 11. Apr 2007, 10:12
Hi!

Erstmal: Ich nutze Indy 9

Ich bin gerade dabei ein Chat zu programmieren. Ich habe 1 Server und alle Clients verbinden sich mit dem.
Angenommen ich habe 2 Rechner.
Auf PC 1 läuft 1 Server und 1 Client. (Client ist mit Server verbunden).
Auf PC 2 läuft 1 Client (Mit dem Server auf PC 1 verbunden).

Soweit funktioniert es. Wenn ich nun den Client auf PC 2 schließe wird beim Server OnDisconnect aufgerufen und ich kann den Clienten aus der Userliste rausnehmen.

Wenn ich aber die LAN-Verbindung bei PC 2 trenne, denken der Client auf PC 2 und Server auf PC 1 immer noch sie seien verbunden!!
Gut, ich dachte sobald der Server etwas über die Leitung sendet sollte er ja merken das da was nicht hinhaut, aber nein! Der Server sendet fröhlich weiter! Nach einer Weile wird der Server und etwas träge... Und dann hat meine Delphi IDE Windows lahmgelegt. Ich nehme an der Server schreibt in sowas wie einen Puffer.
Beim Clienten auf PC 2 kam beim Senden wenigstens ein Fehler... (Da freut man sich über einen Fehler! )

Ich habe schon verschiedene Möglichkeiten probiert:
  • vor dem Senden CheckForDisconnect
  • vor dem Senden CheckForGracefulDisconnect
  • ich habe jede Minute eine Anfrage geschickt und der Client sollte auf die Anfrage antworten. Allerdings ging das Zeitlich nicht: Der Server läuft in mehren Threads, er wartet auf irgenteine Info und im anderen Thread wollte der Server wissen ob der Client antwortet, irgentwie konnte sich der Client dann nicht einmal mehr einloggen (ich nehme mal an das der Server in mehreren Threads läuft, was soll sonst schiefgelaufen sein? )

Es ging alles nicht.

Wie kann ich also nun hinbekommen das der Server 100% mitbekommt wenn die Verbindung geschlossen ist, oder wie kann ich vor dem Schreiben (oder dabei) mitbekommen wenn die Verbindung beendet wurde.

Oder besser: Wie macht ihr sowas
  Mit Zitat antworten Zitat
 


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