AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIdTCPClient.Connected bringt Socketerror
Thema durchsuchen
Ansicht
Themen-Optionen

TIdTCPClient.Connected bringt Socketerror

Ein Thema von Angel4585 · begonnen am 23. Jan 2009 · letzter Beitrag vom 23. Jan 2009
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

TIdTCPClient.Connected bringt Socketerror

  Alt 23. Jan 2009, 07:16
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:
if FClient.Connected then
.
.
Seltsamerweise kommt wenn ich diese Connected Funktion aufrufe ein Socketfehler 10054 anstatt einfach nur einem false.

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.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TIdTCPClient.Connected bringt Socketerror

  Alt 23. Jan 2009, 07:49
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
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TIdTCPClient.Connected bringt Socketerror

  Alt 23. Jan 2009, 08:19
Indy Version 10, wo seh ich welche genau das ist?

Der Letzte Eintrag im Log + Die Stelle wo die Exception auftritt:

Delphi-Quellcode:
{ $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);
Die Funktion kommt irgendwann hier an:
Delphi-Quellcode:
function TIdStackBSDBase.CheckForSocketError(const AResult: Integer): Integer;
begin
  if AResult = Id_SOCKET_ERROR then begin
    RaiseLastSocketError;
  end;
  Result := AResult;
end;
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: TIdTCPClient.Connected bringt Socketerror

  Alt 23. Jan 2009, 08:55
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.
Martin Weber
Ich bin ein Rüsselmops
  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 02:04 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