AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Probleme mit TIdTelnet
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit TIdTelnet

Ein Thema von stk77 · begonnen am 1. Jun 2007 · letzter Beitrag vom 1. Jun 2007
Antwort Antwort
stk77

Registriert seit: 18. Aug 2005
Ort: Weimar
3 Beiträge
 
Turbo Delphi für Win32
 
#1

Probleme mit TIdTelnet

  Alt 1. Jun 2007, 12:27
Hi,

ich schlage mich gerade etwas mit Telnet herum und benutze da TIdTelnet aus den Indys.
Jetzt hab ich aber ein Problem. Wenn ich einen Befehl vom Client zum Server schicken will und mache dies, wie in der Demo, über eine Eingabezeile, dann funktioniert Alles wie es soll! Wenn ich aber das Gleiche über einen Button, dem ich einen Befehl hinterlegt habe, machen will, dann macht er nach jedem übertragenen Zeichen scheinbar ein <CR> und nichts funktioniert.

Ich will mich übrigens auf einem Linux-Host einloggen.

So funktioniert es:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  i : integer;
  s : string;
begin
  if IdTelnet1.Connected then
    if (key = #13) then
    begin
      s := edit1.text;
    for i := 1 to length(s) do
      IdTelnet1.SendCh(s[i]);
      IdTelnet1.SendCh(#13);
      edit1.Clear;
    end;
end;
und so komischerweise nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin

  s := 'root';

 
  if IdTelnet1.Connected then
    for i := 1 to length(s) do
    begin
      IdTelnet1.SendCh(s[i]);
      IdTelnet1.SendCh(#13);
    end;
end;
Wenn ich nun in die Eingabezeile meinen Anmeldenahmen eingebe(in diesem Fall root) und alles mit <ENTER> bestätige, dann kommt es am Server richtig an:
Code:
login: root
Wenn ich den Button klicke, dann kommt am Server folgendes an:
Code:
 
login: r
o
o
t


Ich benutze Turbo Delphi Professional.
Hoffe irgendjemand kann mir da weiter helfen.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#2

Re: Probleme mit TIdTelnet

  Alt 1. Jun 2007, 12:32
Zitat von stk77:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  i : integer;
  s : string;
begin
  if IdTelnet1.Connected then
    if (key = #13) then
    begin
      s := edit1.text;
      for i := 1 to length(s) do
        IdTelnet1.SendCh(s[i]);
  
      IdTelnet1.SendCh(#13);
      edit1.Clear;
    end;
end;
und so komischerweise nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin

  s := 'root';

 
  if IdTelnet1.Connected then
    for i := 1 to length(s) do
    begin
      IdTelnet1.SendCh(s[i]);
      IdTelnet1.SendCh(#13);
    end;
end;
Funktioniert wie geschrieben. Durch das zusätzliche Begin / End in der Button-Click routine sendest Du ja auch nach jedem Zeichen das #13, im ersten Fall liegt das hinter der Schleife und nicht drin.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin
  s := 'root';
 
  if IdTelnet1.Connected then

  for i := 1 to length(s) do
  begin
    IdTelnet1.SendCh(s[i]);
  end;
    
  IdTelnet1.SendCh(#13);
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Probleme mit TIdTelnet

  Alt 1. Jun 2007, 12:43
Handelt es sich wirklich um eine Telnet-Session ?
Oder ist nur eine "ganz normale" TCP/IP-Verbindung gefordert ?
Der Unterschied ist, dass bei einer Telnet-Session je nach Art der Terminalemulation Steuercodes übertragen werden.
Für eine normale, transparente TCP/IP-Verbindung sollte die Komponente TIdTCPClient verwendet werden.
Andreas
  Mit Zitat antworten Zitat
stk77

Registriert seit: 18. Aug 2005
Ort: Weimar
3 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Probleme mit TIdTelnet

  Alt 1. Jun 2007, 14:01
@Phoenix
Vielen Dank, das wars! Manchmal sieht man echt den Wald vor lauter Bäumen nicht

Naja, zum Glück ist jetzt Wochenende!

@shmia
ja, Telnet!

In diesem Sinne, ein sonniges Wochenende!!!

Gruß, Steffen
  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 21:44 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