Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Indy 10, Telnet Client mit D2010 - PUT geht nicht (https://www.delphipraxis.net/154720-indy-10-telnet-client-mit-d2010-put-geht-nicht.html)

schwa226 22. Sep 2010 14:59

Indy 10, Telnet Client mit D2010 - PUT geht nicht
 
Hallo zusammen!

Schon langsam werde ich mit den Indy 10 und D2010 wahnsinnig!
:twisted::twisted:

(ein anderes Problem war der Telnetclient - der nun durch den von ICS ersetzt wurde und somit auch geht!)

Ich will per TIdTrivialFTP ein 16MB verschicken.
Ich kann verbinden und der TFTP Server erkennt auch das ich ihm eine 'boot.bin' schicken will:

Delphi-Quellcode:
  IdTrivialFTP1.Active := True;
  IdTrivialFTP1.Connect;
  IdTrivialFTP1.Put(PathNewFirmware, 'boot.bin');
  IdTrivialFTP1.Disconnect;
  IdTrivialFTP1.Active := False;
Port und Host passen natürlich.
Jedoch haut es Indy in der Put Procedure auf:

Delphi-Quellcode:
      if BlockCtr > PrevBlockCtr then
      begin
        DataLen := Min(BufferSize - hdrsize, SourceStream.Size - SourceStream.Position);
        SetLength(CurrentDataBlk, DataLen + hdrsize);
        CurrentDataBlk := WordToStr(GStack.HostToNetwork(Word(TFTP_DATA))) + WordToStr(GStack.HostToNetwork(BlockCtr));
        SetLength(CurrentDataBlk, DataLen + hdrsize);
     //   SourceStream.ReadBuffer(CurrentDataBlk[hdrsize+1], DataLen);
        DoWork(wmWrite, DataLen);
        TerminateTransfer := DataLen < BufferSize - hdrsize;
        PrevBlockCtr := BlockCtr;
      end;
Jedoch habe ich die IdTrivialFTP.pas nun schon mit Rev 1.6 überschrieben.
Vorher war es die Rev 1.7. Wie bekomme ich die wieder?
JVC und JVCL neu installieren hat nicht geholfen, muss ich da D2010 neu installieren?

D2010, Win7 x64 - vielleicht liegt auch da das Problem?

Call stack:
Zitat:

:7586b727 KERNELBASE.RaiseException + 0x58
IdTrivialFTP.TIdTrivialFTP.Put($1F5BE80,???)
IdTrivialFTP.TIdTrivialFTP.Put(???,'boot.bin')
uMain.TfrmMain.StartTFTPTimer($1F9C230)
:0047105e TTimer.Timer + $12
:00445a4a StdWndProc + $16
:74ac6238 ; C:\Windows\syswow64\USER32.dll
:74ac68ea ; C:\Windows\syswow64\USER32.dll
:74ac7d31 ; C:\Windows\syswow64\USER32.dll
:74ac7dfa USER32.DispatchMessageW + 0xf

schwa226 22. Sep 2010 15:36

AW: Indy 10, Telnet Client mit D2010 - PUT geht nicht
 
Weiters suchen (mit der Rev 1.7) hat mich auf das gebracht:

Delphi-Quellcode:
CurrentDataBlk := WordToStr(GStack.HostToNetwork(Word(TFTP_DATA))) + WordToStr(GStack.HostToNetwork(BlockCtr));
Und zwar will man hier ja ein WordToStr wandeln. Wenn ich aber mit F7 reinsteppe komme ich in die:

Delphi-Quellcode:
function HostToNetwork(AValue: Int64): Int64;
Das liefert mir natürlich einen Int64 zurück was dem WordToStr nicht gefallen wird.

Eigentlich sollte er hier reinspringen:
Delphi-Quellcode:
function HostToNetwork(AValue: Word): Word;
Warum ist das so und wie kann ich das beheben?

schwa226 26. Sep 2010 10:19

AW: Indy 10, Telnet Client mit D2010 - PUT geht nicht
 
Nur zur Info!

Es handelte sich natürlich um TrivialFTP, nicht um die Telnet Komponente!

Zur Lösung
Habe das mitgelieferte Indy 10.5.5 entfernt und das neue Indy 10.5.8 installiert!
Damit waren die Telnet & TrivialFTP Probleme gelößt!


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