![]() |
Lazarus - Synapse - Connect funzt nicht
Hey,
habe mich in Synapse eingearbeitet und komme an sich mit der ganzen Thematik ganz gut klar. Nur als ich heute auf mehreren wegen versucht habe eine connection herzustellen traten fehler auf.
Delphi-Quellcode:
so wie es aussieht funktioniert das connecten einfach nicht. wenn es funktionieren würde, dann würde ja der savedialog aufpoppen. passiert aber nicht.
procedure TForm1.Button1Click(Sender: TObject);
begin // Create TFTPClient TFTPClient := TTFTPSend.Create; Log.Lines.Add('TFTPClient created'); // Set IP/Port/Username/Password TFTPClient.TargetHost := IPEdit.Text; Log.Lines.Add('TargetSystem is ' + TFTPClient.TargetHost); TFTPClient.TargetPort := PortEdit.Text; Log.Lines.Add('TargetPort is ' + TFTPClient.TargetPort); TFTPClient.UserName:= UserEdit.Text; Log.Lines.Add('UserName is ' + TFTPClient.UserName); TFTPClient.Password:= PassEdit.Text; Log.Lines.Add('Password is ' + TFTPClient.Password); // Try to get file Log.Lines.Add('Try to get "' + FilePathServerEdit.Text + '"'); if TFTPClient.RecvFile(FilePathServerEdit.Text) then begin // Filetransfer successful Log.Lines.Add('File successfully get from TFTPServer'); SaveDialog1.FileName := FilePathServerEdit.Text; if SaveDialog1.Execute then TFTPClient.Data.SaveToFile(SaveDialog1.FileName); end else begin // Filetransfer not successful Log.Lines.Add('Error while getting File from TFTPServer'); Log.Lines.Add(IntToStr(TFTPClient.ErrorCode) + ' - ' + TFTPClient.ErrorString); end; // Free TFTPClient TFTPClient.Free; Log.Lines.Add('TFTPClient destroyed'); end; Ich habe die Klasse TTFTPSend und die zugehörige Unit FTPTSend genutzt (Client und Server protokoll). Da ich nur Dateien suchen und dann kopieren möchte, wäre es vll. sinnvoller nur die Unit FTPSend einzubinden(Client Protkoll)? grüße |
Re: Lazarus - Synapse - Connect funzt nicht
Zitat:
Du weisst die ganzen Daten zu (Host, Port, User, Passwort) und versuchst dann sofort eine Datei runterzuladen. Da fehlt doch FTPClient.Connect oder FTPClient.Connected := True ! Die genaue Syntax musst du selber rausfinden, aber da fehlt definitiv eine Anweisung.
Delphi-Quellcode:
// Deine Variable fängt mit T an!
// nach dem Borland Coding Style ist das falsch // Membervariablen müssen mit dem Prefix "F" beginnen TFTPClient := TTFTPSend.Create; |
Re: Lazarus - Synapse - Connect funzt nicht
mmh der Coding-Style von Borland ist ja erstmal kein großes Hindernis :)
Hier ![]() |
Re: Lazarus - Synapse - Connect funzt nicht
Zitat:
|
Re: Lazarus - Synapse - Connect funzt nicht
mmmh so wie ich das sehe wird durch den constructor create vll ein connect durchgeführt? obwohl es recht seltsam wäre.
in der klasse TFTPSend (die ich nicht benutzt habe) gibt es noch function login, function logout. nur leider beider ohne paramterübergabe. geben nur nen boolschen wert zurück. |
Re: Lazarus - Synapse - Connect funzt nicht
Machst du jetzt normales FTP oder TFTP (Trivial FTP)?
Bei Trivial FTP brauchst du keinen User und kein Passwort und musst dich auch mit Login nicht anmelden. Bei normalem FTP führt die Methode Login folgendes aus: Connect and logon to FTP server. If you specify any FireWall, connect to firewall and throw them connect to FTP server. Login sequence depending on FWMode. |
Re: Lazarus - Synapse - Connect funzt nicht
Zitat:
da gibts nur diese hier: constructor Create; destructor Destroy; override; function SendFile(const Filename: string): Boolean; function RecvFile(const Filename: string): Boolean; function WaitForRequest(var Req: word; var filename: string): Boolean; procedure ReplyError(Error: word; Description: string); function ReplyRecv: Boolean; function ReplySend: Boolean; Und diese klasse hängt nur noch an der TSynaClient Klasse dran, welche auch keine connect oder login functionen liefert. Gibts es jmd, den ich wegen dieser komponente direkt anschreiben könnte? ---- Erm ich werde sicherlich auf die FTPSend Unit umsteigen. Wie du geschrieben hast, ist es sinniger damit zu arbeiten. |
Re: Lazarus - Synapse - Connect funzt nicht
Zitat:
![]() ![]() Da gibt es grosse Unterschiede. Du hast nicht die Wahl, ob du die eine oder andere Klasse verwenden willst. Trivial FTP -> TTFTPSend Normales FTP -> TFTPSend |
Re: Lazarus - Synapse - Connect funzt nicht
So jetzt hab ich kein Bock mehr. Wird morgen weiter gemacht.
Delphi-Quellcode:
Login und demzufolge der Delete Befehl klappen immer noch nicht. Die Anwendung startet aber mehr auch nicht.
procedure TForm1.Button1Click(Sender: TObject);
begin // Create TFTPClient FTPClient := TFTPSend.Create; Log.Lines.Add('TFTPClient created'); // Set IP/Port/Username/Password FTPClient.FWHost:= IPEdit.Text; Log.Lines.Add('TargetSystem is ' + FTPClient.FWHost); FTPClient.FWPort:= PortEdit.Text; Log.Lines.Add('TargetPort is ' + FTPClient.FWPort); FTPClient.FWUsername:= UserEdit.Text; Log.Lines.Add('UserName is ' + FTPClient.FWUsername); FTPClient.FWPassword:= PassEdit.Text; Log.Lines.Add('Password is ' + FTPClient.FWPassword); FTPClient.FWMode:=1; // Connect if FTPClient.Login then Log.Lines.Add('Logged in!'); // Delete if DeleteFile('/d:/test.txt') then Log.Lines.Add('Deleted!!'); // Logout if FTPClient.Logout then Log.Lines.Add('Logged out!'); // Free TFTPClient FTPClient.Free; Log.Lines.Add('TFTPClient destroyed'); end; (Wenn ich nur Login bzw. Logout schreibe dann findet der compiler die function komischerweise nicht) Ich finde auch nirgends eine Klassifizierung der FWMode - Möglichkeiten, außer das bei -1 die Login-Sequenz manuell gemacht werden kann. Blos wie das nun wieder geht, dazu gibts genauso viele Informationen wie zu FWMode. Nömlich keine :( Bis morgen |
Re: Lazarus - Synapse - Connect funzt nicht
Das funktioniert, sicherlich auch nur weil die LoginDaten per parameter übergeben werden. Aber es funktioniert ^^
Delphi-Quellcode:
Trotzdem muss es doch möglich sein, sich einzuloggen. Ein paar prozeduren durchlaufen zu lassen und sich dann wieder vom server verabschieden oder nicht?!
if FtpGetFile(IPEdit.Text, PortEdit.Text, '/d:/text.txt', 'd:\test.txt', UserEdit.Text, PassEdit.Text)
then Log.Lines.Add('GET FILE'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz