Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Telnet Client Problem (https://www.delphipraxis.net/180770-telnet-client-problem.html)

jacky213 16. Jun 2014 23:58

Telnet Client Problem
 
Hallo,

ich hatte vor eine Telnet Verbindung aufzubauen und darüber ein paar Befehle abzusetzen aber irgendwie
stützt das Programm nach dem absetzen des ersten Befehls (Der vom Server Korrekt ausgeführt wird) ab.
Hier seht ihr meinen bisherigen Code:

Verbinden:
Code:
procedure TForm2.Button1Click(Sender: TObject);
begin
telnet.Host:=edit1.Text;
telnet.Port:= strtoint(edit2.Text);
telnet.Connect;
button1.Caption:='Connected';
button1.Enabled:=false;
end;
Befehl Senden:
Code:
telnet.Sendcmd('echo hi');
Verbinden geht ohne Probleme (Trennen macht nicht richtig). Aber sobald ich den
zweiten Button zum absetzten des Befehls drücke wird der Befehl ausgeführt, dass
Programm stützt allerdings komplett ab.

Hoffe ihr könnt mir helfen

Danke

himitsu 17. Jun 2014 00:17

AW: Telnet Client Problem
 
Der Fehler liegt in Zeile 42.


Ein paar mehr Infos können nie schaden.
- immernoch XE3? (das kann man übrigens auch im Profil angeben, wenn man das in den Posts nicht immer angeben möchte)
- was ist "telnet"? (wenn TidTelnet ... das im Delphi integrierte, oder gab's ein Upgrade)
- Und auch wenn ich mich manchmal wiederhole: Was sagt dein Debugger dazu, wo das Programm abstürzt? (notfalls die ensprechenden Debug-DCUs aktivieren, falls möglich)



Vermutung:
Da das Senden scheinbar geht, wird das Problem wohl beim Response liegen, also dem Empfangen und der Auswertung der Antwort des Servers.

jacky213 17. Jun 2014 06:42

AW: Telnet Client Problem
 
Ich nutze delphi XE6 und es geht um idTelnet was Standartmäßig dabei ist.
Habe vorher IdTCPClient verwendet doch das Ergebnis war das selbte, nach dem
absetzen des Befehls, stürtzt das Programm ab.

Das sind die Infos die ich von Delphi während der Ausführung bekomme

Code:
Thread-Start: Thread-ID: 4668. Prozess Project2.exe (1084)
Prozessstart: C:\Users\nixlos\Documents\Embarcadero\Studio\Projekte\Win32\Debug\Project2.exe. Basisadresse: $00400000. Prozess Project2.exe (1084)
Modul laden: Project2.exe. Enthält Debug-Infos. Basisadresse: $00400000. Prozess Project2.exe (1084)
Modul laden: ntdll.dll. Ohne Debug-Infos. Basisadresse: $77830000. Prozess Project2.exe (1084)
Modul laden: KERNEL32.dll. Ohne Debug-Infos. Basisadresse: $752F0000. Prozess Project2.exe (1084)
Modul laden: KERNELBASE.dll. Ohne Debug-Infos. Basisadresse: $76340000. Prozess Project2.exe (1084)
Modul laden: OLEAUT32.dll. Ohne Debug-Infos. Basisadresse: $772E0000. Prozess Project2.exe (1084)
Modul laden: ole32.dll. Ohne Debug-Infos. Basisadresse: $77150000. Prozess Project2.exe (1084)
Modul laden: msvcrt.dll. Ohne Debug-Infos. Basisadresse: $75AA0000. Prozess Project2.exe (1084)
Modul laden: GDI32.dll. Ohne Debug-Infos. Basisadresse: $757E0000. Prozess Project2.exe (1084)
Modul laden: USER32.dll. Ohne Debug-Infos. Basisadresse: $76020000. Prozess Project2.exe (1084)
Modul laden: ADVAPI32.dll. Ohne Debug-Infos. Basisadresse: $763A0000. Prozess Project2.exe (1084)
Modul laden: SECHOST.dll. Ohne Debug-Infos. Basisadresse: $757C0000. Prozess Project2.exe (1084)
Modul laden: RPCRT4.dll. Ohne Debug-Infos. Basisadresse: $75400000. Prozess Project2.exe (1084)
Modul laden: SspiCli.dll. Ohne Debug-Infos. Basisadresse: $75230000. Prozess Project2.exe (1084)
Modul laden: CRYPTBASE.dll. Ohne Debug-Infos. Basisadresse: $75220000. Prozess Project2.exe (1084)
Modul laden: LPK.dll. Ohne Debug-Infos. Basisadresse: $75550000. Prozess Project2.exe (1084)
Modul laden: USP10.dll. Ohne Debug-Infos. Basisadresse: $770B0000. Prozess Project2.exe (1084)
Modul laden: VERSION.dll. Ohne Debug-Infos. Basisadresse: $70AD0000. Prozess Project2.exe (1084)
Modul laden: COMCTL32.dll. Ohne Debug-Infos. Basisadresse: $707A0000. Prozess Project2.exe (1084)
Modul laden: SHLWAPI.dll. Ohne Debug-Infos. Basisadresse: $75570000. Prozess Project2.exe (1084)
Modul laden: SHELL32.dll. Ohne Debug-Infos. Basisadresse: $76450000. Prozess Project2.exe (1084)
Modul laden: WINSPOOL.DRV. Ohne Debug-Infos. Basisadresse: $6C400000. Prozess Project2.exe (1084)
Modul laden: IMM32.dll. Ohne Debug-Infos. Basisadresse: $754F0000. Prozess Project2.exe (1084)
Modul laden: MSCTF.dll. Ohne Debug-Infos. Basisadresse: $76270000. Prozess Project2.exe (1084)
Modul laden: nvinit.dll. Ohne Debug-Infos. Basisadresse: $72E60000. Prozess Project2.exe (1084)
Modul laden: detoured.dll. Ohne Debug-Infos. Basisadresse: $0F000000. Prozess Project2.exe (1084)
Modul laden: nvd3d9wrap.dll. Ohne Debug-Infos. Basisadresse: $6B740000. Prozess Project2.exe (1084)
Modul laden: SETUPAPI.dll. Ohne Debug-Infos. Basisadresse: $75E80000. Prozess Project2.exe (1084)
Modul laden: CFGMGR32.dll. Ohne Debug-Infos. Basisadresse: $772B0000. Prozess Project2.exe (1084)
Modul laden: DEVOBJ.dll. Ohne Debug-Infos. Basisadresse: $755E0000. Prozess Project2.exe (1084)
Modul laden: nvdxgiwrap.dll. Ohne Debug-Infos. Basisadresse: $6B6F0000. Prozess Project2.exe (1084)
Modul laden: UxTheme.dll. Ohne Debug-Infos. Basisadresse: $69F60000. Prozess Project2.exe (1084)
Modul laden: dwmapi.dll. Ohne Debug-Infos. Basisadresse: $69EB0000. Prozess Project2.exe (1084)
Modul laden: WTSAPI32.dll. Ohne Debug-Infos. Basisadresse: $72640000. Prozess Project2.exe (1084)
Modul laden: WINSTA.dll. Ohne Debug-Infos. Basisadresse: $714D0000. Prozess Project2.exe (1084)
Thread-Start: Thread-ID: 5332. Prozess Project2.exe (1084)
Thread-Start: Thread-ID: 4500. Prozess Project2.exe (1084)
Modul laden: WS2_32.dll. Ohne Debug-Infos. Basisadresse: $75D00000. Prozess Project2.exe (1084)
Modul laden: NSI.dll. Ohne Debug-Infos. Basisadresse: $755D0000. Prozess Project2.exe (1084)
Modul laden: fwpuclnt.dll. Ohne Debug-Infos. Basisadresse: $69BB0000. Prozess Project2.exe (1084)
Modul laden: IdnDl.dll. Ohne Debug-Infos. Basisadresse: $550E0000. Prozess Project2.exe (1084)
Modul laden: Normaliz.dll. Ohne Debug-Infos. Basisadresse: $76260000. Prozess Project2.exe (1084)
Modul laden: IPHLPAPI.DLL. Ohne Debug-Infos. Basisadresse: $71330000. Prozess Project2.exe (1084)
Modul laden: WINNSI.DLL. Ohne Debug-Infos. Basisadresse: $71320000. Prozess Project2.exe (1084)
Modul laden: ole32.dll. Ohne Debug-Infos. Basisadresse: $040A0000. Prozess Project2.exe (1084)
Modul entladen: ole32.dll. Prozess Project2.exe (1084)
Modul laden: ole32.dll. Ohne Debug-Infos. Basisadresse: $043B0000. Prozess Project2.exe (1084)
Modul entladen: ole32.dll. Prozess Project2.exe (1084)
Modul laden: CLBCatQ.DLL. Ohne Debug-Infos. Basisadresse: $761A0000. Prozess Project2.exe (1084)
Modul laden: MSWSOCK.dll. Ohne Debug-Infos. Basisadresse: $6D550000. Prozess Project2.exe (1084)
Modul laden: WSHTCPIP.dll. Ohne Debug-Infos. Basisadresse: $6D540000. Prozess Project2.exe (1084)

baumina 17. Jun 2014 08:07

AW: Telnet Client Problem
 
Da werden sehr schöne viele dlls geladen, doch interessant ist das irgendwie überhaupt nicht. Um dir weiterhelfen zu können postest entweder den kompletten relevanten Quelltext oder du setzt dir mal verschiedene Haltepunkte und debuggst dein Programm um zu sehen was "stürzt ab" eigentlich so im Detail ist.

jacky213 17. Jun 2014 08:26

AW: Telnet Client Problem
 
So habe das Problem gelöst.

statt:
idtcpclient.Sendcmd('echo hi');

habe ich:
idtcpclient.Socket.WriteLn('echo hi');

dann läufts

himitsu 17. Jun 2014 09:38

AW: Telnet Client Problem
 
Das da oben sind die Debuger-Meldungen.
Wobei dort noch bissl was fehlt, denn die Exception ist da noch nicht drin erwähnt.

Der Stack-Trace ist aber nochmal ein anderes Fenster.


Zitat:

dann läufts
Ja, weil das die Hälfte der SendCmd-Funktion ist, welche funktioniert.
Dennoch bleibt hier ein Problem, da dann die Rückantwort nicht ausgewertet wird.

Mehrere Befehle und/oder eine längere Laufzeit des Programms wird so irgendwann zu Problemen führen.
Vorallem dann, wenn man auch mal eine Antwort vom Server haben möchte.


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