![]() |
TidTCPServer schaltet bei Telnet Localecho ein
Hallo,
ich habe das Problem, das bei einer Verbindung mit Windows Telnet zu einen Indy TCP Server das locale Echo bei Telnet eingeschaltet wird. Wenn die Verbindung aufgebaut wird ist noch kein Echo vorhanden. Wird das erste Zeichen vom Server zu Telnet gesendet wird das Echo eingeschaltet. Wie kann man es das Echo vermeiden oder wieder abschalten ? Gruß Jürgen hier ein beispiel:
Delphi-Quellcode:
unit Unit3;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdSimpleServer, IdCustomTCPServer, IdEchoServer, IdTCPServer, IdContext; type TForm3 = class(TForm) IdTCPServer1: TIdTCPServer; procedure IdTCPServer1Connect(AContext: TIdContext); procedure IdTCPServer1Execute(AContext: TIdContext); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.IdTCPServer1Connect(AContext: TIdContext); var test:String; begin Test:=AContext.Connection.IOHandler.ReadLn;// Eingabe noch Ohne LOCALECHO AContext.Connection.IOHandler.Writeln(Test);// Was geschieht hier?? Test:=AContext.Connection.IOHandler.ReadLn;// Eingabe mit LOCALECHO end; procedure TForm3.IdTCPServer1Execute(AContext: TIdContext); begin Sleep(1); end; end. |
Re: TidTCPServer schaltet bei Telnet Localecho ein
Ich habe eine Möglichkeit gefunden den Fehler zu umgehen.
Wenn ich vorab die Befehlskette #255#253#1 sende, habe ich kein lokales Echo mehr. Die Antwort von Telnet muss ich dann natürlich abfangen.
Code:
Falls jemand eine bessere Lösung hat nur her damit :)
procedure TForm3.IdTCPServer1Connect(AContext: TIdContext);
var Response:String; begin Response:=''; AContext.Connection.IOHandler.Write(#255#251#1); // (IAC WILL ECHO) while length(Response)<3 do Response:=Response+AContext.Connection.IOHandler.ReadChar; // Antwort muss ausgelesen werden!!!!!! // Hier kann jetzt noch die Antwort von Telnet weiter ausgewertet werden. // Response sollte den Wert #255#253#1 haben. (IAC DO ECHO) : : end; Gruß Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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 by Thomas Breitkreuz