AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Phänomen bei Telnet-Client

Ein Thema von Odeng · begonnen am 21. Apr 2010 · letzter Beitrag vom 21. Apr 2010
Antwort Antwort
Odeng

Registriert seit: 29. Mai 2008
5 Beiträge
 
#1

Phänomen bei Telnet-Client

  Alt 21. Apr 2010, 21:19
Hallo und guten Abend
Zunächst, ich habe das Problem zwar bereits umgangen, finde die Lösung aber nicht schön:

Ich versuche mit einer TIDTelnet eine Verbindung zu einem Telnet-Server aufzubauen ein (oder mehrere) Kommandos zu übermitteln und mich dann wieder zu trenne. Das ganze wird hier zunächst über einen Button gestartet:

Delphi-Quellcode:
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const Buffer: String);

  procedure sendData(Data: String; CR: Boolean);
    var I: Byte;
  begin
    for I:=1 to Length(Data) do
    begin
      IdTelnet1.SendCh(Data[i]);
      sleep(10);
    end;
    if CR then
      IdTelnet1.SendCh(#13);
  end;

begin
  if (Pos('IPS1>',Buffer) > 0) then
    SendData('A', true)
  else if (Pos('Password:',Buffer) > 0) then
    SendData('', true)
  else if (Pos('Username:',Buffer) > 0) then
    SendData('admin', true);

  Memo1.Lines.Add(Buffer);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTelnet1.Host:='192.168.2.103';
  IdTelnet1.Connect;
end;
Soweit zu meiner Lösung, denn dieser Code funktioniert.

Mein erste Versuch mit Writeln() schlug aber fehl. Und ich weiß nicht warum. Ich musste dieses Writeln() durch die Procedure sendData(Data: String; CR: Boolean); ersetzen, in der ich jedes Zeichen einzeln übermittle und ggf die "Zeile" mit einem CR abschließe. Dies macht doch aber Writeln im Prinzip auch, oder? Warum aber geht dann folgender Code nicht?

Delphi-Quellcode:
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const Buffer: String);
begin
  if (Pos('IPS1>',Buffer) > 0) then
    IdTelnet1.writeln('A')
  else if (Pos('Password:',Buffer) > 0) then
    IdTelnet1.writeln('')
  else if (Pos('Username:',Buffer) > 0) then
    IdTelnet1.writeln('admin');

  Memo1.Lines.Add(Buffer);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTelnet1.Host:='192.168.2.103';
  IdTelnet1.Connect;
end;

BTW: Mich würde auch interessieren, ob es eine schönere Methode gibt, auf die Frage des Servers die entsprechende Antwort zu geben, als den Gesendeten String zu untersuchen. Denn Diese Methode funktioniert nur bei EINEM speziellen Server und nur bei einer Version (Da sich ggf der Text ändern kann).)

Merci für eure Mühen
  Mit Zitat antworten Zitat
Odeng

Registriert seit: 29. Mai 2008
5 Beiträge
 
#2

Re: Phänomen bei Telnet-Client

  Alt 21. Apr 2010, 21:25
ich nochmal...
Leider habe ich den Beitrag völlig falsch abgelegt. ich habe aber leider keine Ahnung wie ich den vrschieben kann.
Verät mir das einer?


Sorry,
Oliver
  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 09:22 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