Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Telnet Exception EIdCloesdGracefully

  Alt 31. Jul 2012, 13:09
Der Fehler tritt auf egal ob man Quit eingibt und dann der Server die COnnection beendet oder ob man selber im Code ein Disconnect des Clients aufruft.

Telnet.ClosedGratefully gibt's scheinbar nur als ReadOnly-Porperty.

Hier mal der implementation-Teil meiner Testanwendung:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  //Hier Host und Port konfigurieren
  Telnet.Host:='192.168.101.24';
  Telnet.Port:=4301;
end;

procedure TForm1.btnConnectClick(Sender: TObject);
begin
  Telnet.OnDataAvailable:=React;
  Telnet.Connect;
end;

procedure TForm1.btnDisconnectClick(Sender: TObject);
begin
  try
// Telnet.SendCmd('Quit',-1);
    Telnet.Disconnect;
  except on E:Exception do
    Memo.Lines.Add('y:'+e.Message);
  end;
end;


procedure TForm1.btnSendClick(Sender: TObject);
begin
  SendCommand;
end;

procedure TForm1.edCmdKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = CHR(13) then
    SendCommand;
end;

procedure TForm1.SendCommand;
var cmd:String;
begin
  cmd:=Trim(edCmd.Text);
  if Telnet.Connected then
    Telnet.SendCmd(cmd,-1)
  else
    showmessage('Client ist nicht verbunden!');
end;

procedure TForm1.React(Buffer:String);
begin
  try
  Memo.Lines.Add(Buffer);
  except on e:Exception do
    Memo.Lines.Add('x:'+e.Message);
  end;
end;
Ich hab auch mal versucht die Exception abzufangen, aber die kommt scheinbar an einer anderen Stelle. Ich kann diese aber nicht sehen, da sie wohl irgendwo in den Indys ist?

Ganz komisch ist, dass ich mich mit meiner Testanwendung jetzt gar nicht mehr an dem Server anmelden kann. Sobald ich den Usernamen sende via SendCmd friert alles ein. Connecten geht aber noch, so dass z.B. auch der Login-Prompt noch kommt.
Mit Putty z.B. funzt es aber noch komplett.
Ralph

Geändert von Jumpy (31. Jul 2012 um 13:19 Uhr)
  Mit Zitat antworten Zitat