Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Support für IndyTelnet Delphi 7, Absturz? (https://www.delphipraxis.net/126893-support-fuer-indytelnet-delphi-7-absturz.html)

Moriss 4. Jan 2009 11:18


Support für IndyTelnet Delphi 7, Absturz?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Liebe Community!
Auch wenn ich ertst seit kurzem angemeldet bin, habe ich hier schon desöfteren rumgestöbert, da die meisten Beiträge doch sehhhr hilfreich sind!
Ich hoffe, auch wenn ich newbie in diesem forum bin, Unterstützung zu bekommen. Also, nun zum Prioblem:

Ich habe ein Programm, über das ich auf Telnet zugreifen möchte/muss. Dieses Programm schickt bei einer Verbindung folgendes:
Tante_EDIT:Bild in den Anhzang verschoben

Im Programm, welches die Verbindungen annehmen soll steht dann etwas in der Art:
Code:
Fernverbindung vom 127.0.0.1:1518
Remote Autoresierung ok
Mein Programm verbindet sich über port 81, deswegen bin ich über die erste Aussage des Programms schon verwundert, dann Klappt aber anscheinend die Verbindung (Remote Autoresierung ok), jedoch stürzt dann mein geschriebenes Programm ab.
Der Quellcode für diesen teil des Programms ist:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
Tel.host:=Edit1.Text;/localhost
Tel.Port:=StrToInt(Edit3.Text);/port (81)
Pass:=MaskEdit1.Text;//passwort("halloXD" falls es hilft. . )
tel.Connect;
tel.Sendcmd(Pass);
end;
nach dem Autoresieren bleibt er hängen und macht NIX.

Ich hoffe nun also auf eure Unterstützung, und ich hoffe, dass mein Gehirn grade etwas hackt und es an einer simplen 'Kleinigkeit liegt :gruebel: :P :glaskugel:
P.S:Das Programm das annehmen soll lauscht übrigens auch auf port 81

EDIT: Bild in den Anhang verschoben, aber Hilfestellung wäre nicht schlecht :wink:

fkerber 4. Jan 2009 11:29

Re: Support für IndyTelnet Delphi 7, Absturz?
 
Hi!

Herzlich Willkommen in der DP!

Könntest du das Bild bitte in den Anhang packen?
Dann bliebe es uns auch erhalten, wenn der externe Server mal nicht erreichbar ist und die Anzeigezeit für den Thread verkürzt sich doch etwas...

Danke!

Ciao, Frederic

Moriss 4. Jan 2009 12:32

Re: Support für IndyTelnet Delphi 7, Absturz?
 
Ich bekomme übrigens die gleiche Situation, wenn ich die TCP/IP kompo verwende ... . falls das hilft :cry:

Klaus01 4. Jan 2009 12:35

Re: Support für IndyTelnet Delphi 7, Absturz?
 
.. und was passiert wenn Du mit einem "normalen" TelnetClient (putty, telnet aus cmd box) zugreifst?

Grüße
Klaus

Moriss 4. Jan 2009 12:40

Re: Support für IndyTelnet Delphi 7, Absturz?
 
ich hab doch screen erstellt, dann kann ich nach der autorisierung commands schicken, zb. /? für eine liste der befehle etc.

Klaus01 4. Jan 2009 14:12

Re: Support für IndyTelnet Delphi 7, Absturz?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Tel.host:=Edit1.Text; //localhost
  Tel.Port:=StrToInt(Edit3.Text);///port (81)
  Pass:=MaskEdit1.Text;//passwort("halloXD" falls es hilft. . ) <-- Breakpunkt setzen, dann mit F7 oder F8 weiter
  tel.Connect;
  tel.Sendcmd(Pass);
end;
.. und dann mal gucken wo es dann hängt.

Aber solltest Du nicht erst das auswerten was Dir der Server schickt.
Darauf dann das gewünschte senden - und nicht einfach nach dem Connect gleich das Passwort.

Grüße
Klaus

Moriss 4. Jan 2009 15:11

Re: Support für IndyTelnet Delphi 7, Absturz?
 
Ich weiß ja schon, was der server mir schickt, nen leeren screen, ich was ja auch schon, dass das pw geschickt wird und somit mein kollege client auch verbindet, siehe hier:
Code:
Fernverbindung vom 127.0.0.1:1109
Remote Autoresierung ok
Fernverbindung vom 127.0.0.1:1194
Remote Autoresierung ok
das breakpoint setzten bringt nix, selbst wenn ich es überall setzte (ja, ich neige zum übertreiben . . .)
ich beschreib ma, was passiert, wenn ich ne anfrage über cmd mache ( mit telnet 127.0.0.1 81)
der verbindet ( seh ich ja nich), dann changed das Fenster und heißt telnet 127.0.0.1, dann wird alles "leer" und wenn ich das passwort dann eingebe, kommt "Authenticated ok" und ich kann meine befehle schicken (soweit komme ich ja gar nicht)
Ich hatte auch schonmal irgendwo ne andere möglichkeit gesehen, befehle zu schicken mit ner schleife, ich finds aber net mehr. . .

Klaus01 4. Jan 2009 17:25

Re: Support für IndyTelnet Delphi 7, Absturz?
 
Guten Abend,

so kann ich mich in mein Linuxsystem per telnet anmelden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

begin
  idTelnet1.Host:='192.168.189.128';
  idTelnet1.Connect();
  if idTelnet1.Connected then
    memo1.Lines.Add('connected');
end;


procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const Buffer: String);
begin
  memo1.Lines.add(buffer);
  if pos('ogin',buffer) > 0 then
    (sender as TidTelnet).SendCmd('klaus');
  if pos('assword',buffer) > 0 then
    (sender as TidTelnet).SendCmd('klaus');
end;
Im ObjectInspector habe ich beim idTelnet1 noch ThreadedEvent auf true gesetzt.

Grüße
Klaus

Moriss 4. Jan 2009 20:31

Re: Support für IndyTelnet Delphi 7, Absturz?
 
Bei mri stürzt er auch da ab, vor allem bringt mir dasd buffer-warten nichts, da er ja einfach nur uf das pw wartet, ohne i-was anzugeben . .. .
Ich hoffe, irgendwer da draußen kann mir noch helfen, ich poste jetzt einfach mal aus verzweiflung meinen null-kommentierten und un-formqatierten quelltext
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, Mask, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdTelnet, XPMan, IdAntiFreezeBase,
  IdAntiFreeze;

type
  TForm1 = class(TForm)
    XPManifest1: TXPManifest;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Button1: TButton;
    Edit2: TEdit;
    Memo1: TMemo;
    IdTelnet1: TIdTelnet;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure IdTelnet1Connect(Sender: TObject);
    procedure IdTelnet1DataAvailable(Sender: TIdTelnet;
      const Buffer: String);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
  function RandomString(strlength: integer): string;

var
  Form1: TForm1;
  Pass: String;

implementation

{$R *.dfm}
function RandomString(strlength: integer): string;
var
  temp : integer;
begin
  randomize;
  repeat
    temp := random(122); //ggf. erhöhen
    if temp in [0..127] then
    begin//Kann um beliebige ASCII-Zeichen erweitert werden,
    //ggf. den Wert in Random hochsetzen
      result := result + Chr(temp);
      end;
  until length(result) = strlength;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
  IdTelnet1.Host:=Edit1.Text;
  IdTelnet1.Port:=StrtoInt(Edit3.Text);
  IdTelnet1.Connect();
  if IdTelnet1.Connected then
    memo1.Lines.Add('connected');
end;







procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text:='127.0.0.1';
edit3.text:='3207';

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTelnet1.Disconnect;
end;



procedure TForm1.IdTelnet1Connect(Sender: TObject);
begin
Label2.Font.Color:=clLime;
Label2.Caption:='Connected';
end;

procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const Buffer: String);
begin
  memo1.Lines.add(buffer);
  if pos('',buffer) > 0 then
    (sender as TidTelnet).SendCmd('');
  if pos('Authenticated ok',buffer) > 0 then
    (sender as TidTelnet).SendCmd('/?');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
idtelnet1.sendcmd(''); //Das ist im moemnt das passwort,also einfach leer, geht aber auch nicht mit normalen pw, an dieser stelle bleibt er hängen!
except
end;
end;

end.
Hoffe, jemand kann mir noch helfen. . .

Klaus01 4. Jan 2009 20:51

Re: Support für IndyTelnet Delphi 7, Absturz?
 
.. hast Du auch diese Einstellungen vorgenommen?


Zitat:

Im ObjectInspector habe ich beim idTelnet1 noch ThreadedEvent auf true gesetzt.
Wenn ich das nicht gesetzt habe, dann hängt die Applikation bei mir auch.
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 Uhr.
Seite 1 von 2  1 2      

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