Autor Beitrag
realAndy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Windows 7
Delphi 2010, Java
BeitragVerfasst: Mo 16.01.12 15:42 
Hi,

ich möchte micht mit der Indy Komponente IdTCPClient mit einem Server über Telnetverbindung verbinden. Hierzu muss ich ja den Loginnamen und das Passwort übertragen. Wie kann ich dies aber machen?
Wenn ich folgen Code ausführe, dann passiert erst eine weile nichts und dann kommt die Meldung Connection Closed Gracefully.
IdTCPClient1.IOHandler.ReadLn gibt gar nichts zurück.
Was macheich falsch, b.z.w. wie sende ich die Logindaten an den Server?


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
IdTCPClient1.Host := ...;
IdTCPClient1.Port := 23;
IdTCPClient1.Connect;
if not (IdTCPClient1.Connected) then
begin
    showmessage('es konnte keine Verbindung aufgebaut werden!');
    exit;
end;

IdTCPClient1.SendCmd('USER ' + 'username');
IdTCPClient1.SendCmd('PASS ' + 'password');
JvMemo1.Lines.Add(IdTCPClient1.IOHandler.ReadLn);



Danke für eure Hilfe
Andy

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt

_________________
Viele Grüße
Andy


Zuletzt bearbeitet von realAndy am Di 17.01.12 10:10, insgesamt 1-mal bearbeitet
realAndy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Windows 7
Delphi 2010, Java
BeitragVerfasst: Mo 16.01.12 17:03 
ich habe jetzt versucht die Telnet Verbindung mit der Komponente IdTelnet herzustellen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
IdTelnet1.Host := '....';
IdTelnet1.Port := 23;
IdTelnet1.Connect;
IdTelnet1.SendCmd('username');
IdTelnet1.SendCmd('passwort');
...
Nach einiger Zeit kommt dann allerdings immer noch die Meldung "Connection Closed Gracefully".

Wie muss ich die Logindaten an den Server schicken und wie kann ich herausfinden ob das Login erfolgreich war?

Ich hoffe ihr könnt mir weiterhelfen :)

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt

_________________
Viele Grüße
Andy
realAndy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Windows 7
Delphi 2010, Java
BeitragVerfasst: Di 17.01.12 10:06 
hmm, kann mir keiner Weiterhelfen?

Es muss doch möglich sein mit Delphi 2010 eine Telnet Verbindung aufzubauen bei welcher Loginname und PW übergeben werden müssen.
Nur wie kann ich die Logindaten übergeben?

_________________
Viele Grüße
Andy
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 17.01.12 12:26 
Moin!

Hm, wie man das mit D2010 und möglicherweise Indy10 macht, weiß ich nicht. :nixweiss:

Aber da bisher keiner was beizutragen hatte: ich habe mal in meinem QT-Archiv gewühlt, irgendwann hatte ich auch mal was mit der IdTelnet-Kompo zu tun, allerdings D7pro und Indy9... :?

Hier mal so im Groben:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
type
  TConnectionTask = (
    ctDisconnect, // Verbindung trennen
    ctQuery       // Verbindungszustand abfragen
    );

  TMainForm = class(TForm)
    LC: TIdTelnet;
    edHost: TEdit;
    edPassword: TEdit;
    BtnQuery: TButton;
    BtnDisconnect: TButton;
    procedure LCDataAvailable(Sender: TIdTelnet; const Buffer: String);
    procedure LCConnected(Sender: TObject);
    procedure BtnQueryClick(Sender: TObject);
    procedure BtnDisconnectClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FConnectionTask: TConnectionTask;
    FReceiveBuffer: String;
    procedure SetConnectionTask(const Value: TConnectionTask);
  public
    property ConnectionTask: TConnectionTask read FConnectionTask write SetConnectionTask;
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.LCConnected(Sender: TObject);
begin
  LC.WriteLn(edPassword.Text);
  case FConnectionTask of
    ctQuery:
      begin
        LC.WriteLn('dir /st/conn');
        LC.WriteLn('dir /st/wa/th');
      end;
    ctDisconnect:
      LC.WriteLn('do /o/m/d');
  end;
  LC.WriteLn('exit');
end;

procedure TMainForm.LCDataAvailable(Sender: TIdTelnet; const Buffer: String);
begin
  FReceiveBuffer := FReceiveBuffer +Buffer;
  if (NOT Sender.Connected) then
    if (FConnectionTask > ctDisconnect) then
      with TStringList.Create do try
        CommaText := UpperCase(FReceiveBuffer);
        while ( (Count > 0and (Strings[0] <> 'DSL-CH-1') ) do
          Delete(0);
        if (Count >= 6then begin
          edConTime.Text := Strings[5];
          Delete(0);
        end;
        while ( (Count > 0and (Strings[0] <> 'DSL-CH-1') ) do
          Delete(0);
        if (Count >= 4then
          edAvgRx.Text := Strings[3];
      finally
        Free;
      end;
end;

procedure TMainForm.SetConnectionTask(const Value: TConnectionTask);
begin
  FConnectionTask := Value;
  FReceiveBuffer := '';
  LC.Connect;
end;

procedure TMainForm.BtnQueryClick(Sender: TObject);
begin
  ConnectionTask := ctQuery;
end;

procedure TMainForm.BtnDisconnectClick(Sender: TObject);
begin
  ConnectionTask := ctDisconnect;
end;
Irgendwas habe ich damals mit meinem Router veranstaltet, frag mich nicht was... :hair: Hat aber geklappt. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
realAndy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Windows 7
Delphi 2010, Java
BeitragVerfasst: Mi 18.01.12 12:07 
Danke für die Antwort :)
Aber irgend wie will das bei mir mit Indy10 nicht laufen.
Ich hab jetzt Overbyte ICS genommen und schon geht alles.

Mich würde trotzdem interessieren, wie man das ganze unter Delphi 2010 mit Indy10 hinbekommt.


Viele Grüße
Andy

_________________
Viele Grüße
Andy