Einzelnen Beitrag anzeigen

Master of Phoenix

Registriert seit: 28. Sep 2007
4 Beiträge
 
#5

Re: Server: Socket-Fehler # 10054

  Alt 30. Sep 2007, 01:00
Zitat:
Versuch mal ob das funktioniert:
Delphi-Quellcode:
procedure TForm1.TCPServerExecute(AThread: TIdPeerThread);
var s:string;
begin
   with AThread.Connection do
   try
      s:=readln;
      //Der Fehler ist bei diesem s:=readln
   except
     on e: exception do
        Showmessage(e.Message); //Hier den Fehler behandeln also in deinem Fall Socket-Fehler # 10054
   end;
end;
Hmm, das einzige was jetzt kommt ist die Fehlermeldung, aber der Server stürzt trotzdem ab. Selbst wenn ich noch ein AThread.connection.disconnect; hinzufüge. Das einzige is jetzt, dass ich den Server weiter benutzen kann (die Oberfläche) sobald jedoch ein neuer Client verbinden will oder ein schon angemeldeter schreibt kommt wieder die Fehlermeldung.

Würd das aber gerne so haben, dass wenn der Fehler kommt diese Verbindung einfach geschlossen wird und der rest weiter arbeitet und sich nicht auf alle Verbindungen auswirkt.

Zitat von Phistev:
Habe bisher noch nicht mit den Indys gearbeitet, aber es müsste doch eine Möglichkeit geben, mit der du feststellen kannst, ob der Client noch verbunden (Connected?) ist.
Naya, das war das, was ich als erstes versucht habe:

Delphi-Quellcode:
if Athread.Connection.Connected=true then
   with AThread.Connection do
   begin
      s:=readln;
      //...
   end;
Funktioniert aber auch nicht und is glaub ich nen Denkfehler, da der Server ja eigentlich noch denkt, dass er ne Verbindung hat, er kann nur nicht readln Ausführen.
  Mit Zitat antworten Zitat