Einzelnen Beitrag anzeigen

Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#1

IdTCPClient Komponente

  Alt 25. Nov 2011, 11:21
Hallo zusammen

Ich habe eine kleines Programm geschrieben, dass den Port testen soll, ob dieser connected werden kann.

Auf einem Button habe ich folgenden Code hinterlegt:

Delphi-Quellcode:
procedure Tfrm_POP3SMTPTester.Button1Click(Sender: TObject);
begin
  try
    IdTCPClient.Host := edt_PortHost.Text;
    IdTCPClient.Port := StrToInt(edt_PortNr.Text);
    IdTCPClient.ConnectTimeout := 2000;
    IdTCPClient.Connect; // (4000);
    if IdTCPClient.Connected then
    begin
      showmessage('Connect hergestellt!');
      IdTCPClient.Disconnect;
    end;
  except
    on E: EIdTextInvalidCount do
      Writeln(E.Message);
    on E: EIdMessageCannotLoad do
      Writeln(E.Message);
    on E: EIdPOP3Exception do
      Writeln(E.Message);
    on E: EIdTextInvalidCount do
      Writeln(E.Message);
    on E: EIdMessageCannotLoad do
      Writeln(E.Message);
    on E: EIdDoesNotSupportAPOP do
      Writeln(E.Message);
    on E: EIdUnrecognizedReply do
      Writeln(E.Message);
    on E: EIdTLSClientException do
      Writeln(E.Message);
    on E: EIdTLSClientSSLIOHandlerRequred do
      Writeln(E.Message);
    on E: EIdTLSClientCanNotSetWhileConnected do
      Writeln(E.Message);
    on E: EIdTLSClientTLSNotAvailable do
      Writeln(E.Message);
    on E: EIdTLSClientTLSNegCmdFailed do
      Writeln(E.Message);
    on E: EIdTLSClientTLSHandShakeFailed do
      Writeln(E.Message);
    on E: EIdTLSServerException do
      Writeln(E.Message);
    on E: EIdTLSClientCanNotSetWhileActive do
      Writeln(E.Message);
  end;
  if IdTCPClient.Connected then
    IdTCPClient.Disconnect;
end;
Es funktioniert einwandfrei, aber beim zweiten Connect also bei zweiten mal drücken auf den Button erschein jedesmal
die Meldung "Already Connected". Was mache ich hier falsch?
Ich gebe ja den Befehl IdTCPClient.Disconnect ab...?

Ebenfalls erschein im Debug-Modus vor der Fehlerausgabe die Meldung:
Im Projekt test.exe ist eine Exeption der Klasse EIdAlreadyConnected mit der Meldung 'Already connected' aufgetreten. (Wie gesagt aber nur ab dem zweiten mal bei Drücken des Buttons)

Vielen Dank für Inputs...

Grüsse Jerry.
  Mit Zitat antworten Zitat