Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Verbindung mit Telnet zum Router (https://www.delphipraxis.net/57858-verbindung-mit-telnet-zum-router.html)

dopeline 27. Nov 2005 18:22


Verbindung mit Telnet zum Router
 
Hi@all!

Ich verwende in einem kleinen Programm, welches über Telnet die Verbindung vom Router ins Internet trennen und dann wiederherstellen soll, die Indy-Komponente "IdTelNet". Ich bekomme keine Verbinung zum Router über die IP "192.168.1.1". wenn ich normal Telnet öffne und zu der IP verbinde, klapp das...

Wie stellt man das an?

also telnet.connect; klappt nicht... (telnet:IdTelnet)


Gruß, dopeline

faux 27. Nov 2005 18:42

Re: Verbindung mit Telnet zum Router
 
Hallo!

Hast du Port und Host richtig eingegeben?
Bei mir funktionierts. Ich hab nur Port (Standard 21) und Host eingestellt und per Connect() verbunden. Und schon gings.

Grüße
Faux

dopeline 27. Nov 2005 18:51

Re: Verbindung mit Telnet zum Router
 
So, hab alles bis auf das hier rausgelöscht und es probiert...
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
 Telnet1.Host:='192.168.1.1';
 Telnet1.Port:=23;
 try
  Telnet1.Connect();
 finally
  Memo1.Lines.Add('Verbindung zu 192.168.1.1 hergestellt...');
 end;
end;
gleiches ergebnis...
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Router.exe ist eine Exception der Klasse EIdSocketError aufgetreten. Meldung: 'Socket-Fehler # 10049
Die angeforderte Adresse kann nicht zugewiesen werden.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
klappt irgendwie nicht....


Gruß, dopeline

faux 27. Nov 2005 18:54

Re: Verbindung mit Telnet zum Router
 
Dumme Frage, meinerseits, aber bist du sicher, dass die IP deines Routers 192.168.1.1 ist? Bei mir funktioniert dein Code einwandfrei.

Grüße
Faux

dopeline 27. Nov 2005 19:18

Re: Verbindung mit Telnet zum Router
 
hmm... seltsam. habe jetzt mal ein neues projekt mit nem button und der telnet-komponente erstellt. bis auf, dass ich bei OnDataAvailable noch was eintragen musste, habe ich nichts anders gemacht, als beim eigentlichen projekt, aber jetzt funktioniert es....

Nagut, dann bistel ich mal von vorne und teste am besten etwas öfters...

Vielen Dank!

Gruß, dopeline

dopeline 27. Nov 2005 20:01

Re: Verbindung mit Telnet zum Router
 
So, da das ja jetzt gelöärt ist, würd ich gern noch eine weitere Frage stellen :wink:

Wenn ich das Programm beende, gibt es ne Fehlermeldung, dass die Verbindung nicht getrennt wurde. also habe ich versucht, im OnClose das zu tun. mit Telnet1.disconnect;

Aber das funktioniert nicht... Gibt wieder ne andere Errormessage:

Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Telnet2.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0045D538 in Modul 'Telnet2.exe'. Lesen von Adresse 0000006C'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
hmmm.. da steig ich nicht hinter...

Gruß, dopeline

faux 27. Nov 2005 20:20

Re: Verbindung mit Telnet zum Router
 
Ich hab das selbe Problem bei einer Telnet-Verbindung zu nem IRC-Server gehabt und habs so gelöst:

Delphi-Quellcode:
if Telnet1.Connected then
  begin
    Telnet1.WriteLn('QUIT :');
    Memo1.Lines.Add('*** QUITING');
    while Telnet1.Connected do
      for i := 0 to 10000 do
        Application.ProcessMessages;
  end;
Müsste doch ähnlich gehen, oder?

dopeline 27. Nov 2005 20:37

Re: Verbindung mit Telnet zum Router
 
Also ich habe das jetzt mal in das OnClose-Ereignis eingebettet:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var ini:TiniFile;
    i: Integer;
begin
 ini:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'telnet.cfg');
  try
   ini.WriteString('Connection','HostIP',EditHost.Text);
   ini.WriteString('Connection','Username',EditUser.Text);
   ini.WriteString('Connection','Password',EditPass.Text);
   ini.WriteString('Connection','Port',EditPort.Text);
  finally
   ini.Free;
  end;

  if Telnet1.Connected then
  begin
    Telnet1.WriteLn('QUIT :');
    Memo1.Lines.Add('*** QUITING');
    while Telnet1.Connected do
      for i := 0 to 10000 do
        Application.ProcessMessages;
  end;
end;
folgendes passiert:
erst verbinde ich zum router (lass mir auch ne bestätigung ausgeben in dem memo).
dann klick ich auf schließen (X) --> In dem Memo erscheint dein Text "*** QUITING" aber das programm schließt sich nicht. (auch keine fehlermeldung) ich kann dann noch ein paar mal draufklicken, ohne das was passiert. nach dem 4ten klick schließt es sich, ohne eine fehlermerldung... habs mehrmals probiert, immer nach dem vierten mal schließt es. habs auch mal n weilchen stehen lassen, hätt ja sein können, dass das disconnecten etwas dauert.

woran könnte das denn liegen?

dopeline

faux 27. Nov 2005 20:43

Re: Verbindung mit Telnet zum Router
 
Das liegt an der FOR-Scheife, denke ich.
Mache die mal etwas kürzer.

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 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