![]() |
TIdTCPClient.Connected bringt Socketerror
Hallo,
ich habe das Problem, dass ich meinen Client zum Server verbinde und den Server dann einfach zu mache. Beim Client habe ich eine Methode:
Delphi-Quellcode:
Seltsamerweise kommt wenn ich diese Connected Funktion aufrufe ein Socketfehler 10054 anstatt einfach nur einem false.
if FClient.Connected then
. . Jetz die Fragen: An was liegt das? Wie handhabt man das am besten? Ich habe jetz einfach die Exception abgefangen, was aber mMn keine schöne Lösung ist. |
Re: TIdTCPClient.Connected bringt Socketerror
Hi,
interessant wäre noch die Indy Version. Vielleicht solltest du mal tiefer rein debuggen und schauen bei welcher Zeile im Code bei den Indys das auftritt. Mit der Fehlerbeschreibung lässt sich leider nicht sooo viel anfangen. Gruß reli |
Re: TIdTCPClient.Connected bringt Socketerror
Indy Version 10, wo seh ich welche genau das ist?
Der Letzte Eintrag im Log + Die Stelle wo die Exception auftritt:
Delphi-Quellcode:
Die Funktion kommt irgendwann hier an:
{ $Log: 11952: IdIOHandlerStack.pas
{ { Rev 1.50 6/18/04 1:06:58 PM RLebeau { Bug fix for ReadTimeout property} . . . function TIdIOHandlerStack.ReadFromSource( ARaiseExceptionIfDisconnected: Boolean; ATimeout: Integer; ARaiseExceptionOnTimeout: Boolean): Integer; . . . SetLength(LBuffer, RecvBufferSize); try LByteCount := Binding.Receive(LBuffer);//Hier drin wird die Exception geschmissen SetLength(LBuffer, LByteCount);
Delphi-Quellcode:
function TIdStackBSDBase.CheckForSocketError(const AResult: Integer): Integer;
begin if AResult = Id_SOCKET_ERROR then begin RaiseLastSocketError; end; Result := AResult; end; |
Re: TIdTCPClient.Connected bringt Socketerror
Ach wenn ich das Programm geschlossen habe wurde das Destroy meiner Serverklasse nicht ausgeführt.
Sollte das dann nicht automatisch ausgeführt werden, auch wenn ich vergessen habe das Serverobjekt freizuugeben? (Habs jetz natürlich im FormDestroy freigegeben, aber geht eher ums Prinzip) Wobei es natürlich auch ohne freigeben des Serverobjektes sauber funktionieren muss, da der Server ja auch abgeschossen werden, oder das Netzwerkkabel gezogen werden kann und ich dann auch nicht irgendwelche Exceptions sehen möchte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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