Autor Beitrag
TimKellner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73

Win XP Pro
Delphi 7 Enterprise, RAD Studio
BeitragVerfasst: Fr 01.02.08 23:01 
Hallo,

ich habe ein Problem und zwar habe ich einen TClientSocket und möchte eine Verbindung aufbauen. Falls es nicht Funktioniert soll ein Label gesetz werden. Doch ich erhalte troz try ... except Bloch eine Fehlermeldung
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
    
try
CMSClient.Active := True;
except
lbStatus.Caption := 'Keine Verbindung!';
btOK.Enabled := False;
end;


Die Fehlermeldung lautet:
Asynchroner Socket-Fehler 10061

Wie kann ich diese Fehlermeldung abfangen?

Gruß
Tim
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Fr 01.02.08 23:19 
Startest du das Programm, während du gerade daran rumbastelst? Dann kommen nämlich trotzdem die Fehlermeldungen (lässt sich irgendwo auch Ausstellen). Starte das Programm normal über Windows, dann sollte es klappen.
TimKellner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73

Win XP Pro
Delphi 7 Enterprise, RAD Studio
BeitragVerfasst: Fr 01.02.08 23:36 
Moin,

habe ich auch erst gedacht das das ganze vom Debugger kommt. Aber selbst wenn IDE zu ist bekomme ich die Fehlermeldung.
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Fr 01.02.08 23:53 
Probier' mal:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  try 
    CMSClient.Active := True; 
  except 
    on E: Exception do
      begin
        lbStatus.Caption := 'Keine Verbindung!'; 
        btOK.Enabled := False;
      end; 
  end;

Sollte ab Indy v9 gehen...

Gruß

Calculon
--

_________________
Hallo Mutti
TimKellner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73

Win XP Pro
Delphi 7 Enterprise, RAD Studio
BeitragVerfasst: Sa 02.02.08 12:14 
Moin,

funktioniert damit leider auch nicht. Ich verwende jedoch TSocketClient und KEINE Indy Komponenten,
LorenzS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
BeitragVerfasst: Sa 02.02.08 12:26 
Asynchroner Socket-Fehler 10061 ist keien exception von CMSClient.Active := True;
sondern nur ein event das nach einigen sekunden auftritt. das du ganz einfach abfangen kannst. Mit Ereigniss OnError.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.CMSClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
 case ErrorCode of
  10061:begin
         lbStatus.Caption := 'Keine Verbindung!'; 
        end;
 end;
 btOK.Enabled := False
 ErrorCode:=0;// wenn man den ErrorCode auf 0 setzt sag man das man die Fehler selber behandelt hat und keine weiteren Exception zu diesem Event ausgeführt werden
 Socket.close;// Im Fehlerfall sollte man immer ein close machen, sonst könnte es sein das sich die Socket im speicher anhäufen
end;


Man sollte schon alle ereignisse dieser kompomnete auch benutzen, den das ist immer noch die Einfachste TCP kompomnete überhaupt.