![]() |
FTP ohne Indy?
Moin,
Ich weiss Indy ist geil, toll und einfach das problem was ich habe ist das ich leider nur delphi 6 habe und da das mit indy net rundläuft und bevor ich jetzt wild rumupdate wollte ich fragen ob es noch eine andere möglichkeit gibt mit einem ftp zu kommunizieren ich weill einfach nur eine datei hochladen und ggf. überschreiben, mehr nicht. mFg CHris |
Re: FTP ohne Indy?
alles zu fuss.
kontrollverbindung aufbauen, einloggen, transfer initiieren, datenverbindung aufbauen, senden, schliessen. rfc 959 hat die doku |
Re: FTP ohne Indy?
hmm fertige schnippel gibt es nicht?
|
Re: FTP ohne Indy?
Herzlich willkommen in der Delphi-PRAXiS, Chris.
Ich würde versuchen einen FTP Client auf der WinInet Library aufzusetzen. In der DP oder in Google solltest du einiges dazu finden. Grüße vom marabu |
Re: FTP ohne Indy?
marabu: was kann diese "wininet" library, dass du sie empfiehlst? reichen nicht einfach sockets? ist das nicht das gleiche?
|
Re: FTP ohne Indy?
Hallo Christoph,
WinInet kann vieles, was mit den Sockets und dem RFC erst mühsam aufgebaut werden müsste. Nur um die für FTP relevanten Funktionen zu nennen:
|
Re: FTP ohne Indy?
heh, lohnt sich. ich haett ja sonst libcurl vorgeschlagen, aber das wirds wohl nicht fuer delphi geben.
|
Re: FTP ohne Indy?
Der Nachteil an der WinInet ist nur, dass diese im IE integriert ist.
|
Re: FTP ohne Indy?
Der Internet Explorer ist eine GUI Anwendung, die sich auf die Funktionalität von WININET, MSHTML, MSXML und einigen anderen Bibliotheken stützt. Das gleiche kann jedes andere Programm tun - auch deines. Was also ist der tiefere Sinn deiner Aussage?
Nachdenkliche Grüße vom marabu |
Re: FTP ohne Indy?
Zitat:
|
Re: FTP ohne Indy?
Die WinInet API Funktionen gehören zur API. Sie sind unabhängig vom installierten Brwoser.. Jeder FTP-Client setzt auf sie auf egal, was für eine Kapselung (Indy) verwendet wird.
Und hier ![]() |
Re: FTP ohne Indy?
Zitat:
|
Re: FTP ohne Indy?
Und wie? Am Ende müssen immer irgendwelche API Funktionen von Windows stehen. Wenn sich die Entwickler natürlcih die Arbeit gemacht haben mit RawSockest zu arbeiten, dann war das ihre Entscheidung, aber auch da stehen am Ende wieder Windows API Funktionen.
|
Re: FTP ohne Indy?
stimmt, aber sie benutzen nicht die ftpfunktionen von wininet.
soweit ich die wininet doku verstanden habe, fallen raw sockets oder normales socket() nicht unter wininet, sondern unter winsock! |
Re: FTP ohne Indy?
Hi,
FlashFXP benutzt die Winsock.dll (beim Start wird auch deren Version angezeigt). Sockets werden (soweit ich weiß) selbst aufgebaut, der SSL-Code ist aber mit 100%iger Sicherheit selbstgeschrieben, darauf hab ich den Entwickler mal angesprochen. cu |
Re: FTP ohne Indy?
Hmm ... warum alles so schwer machen.
Wie ripper8472 schon sagte... "mach es zu Fuß". also.. Mit FTP kommunizieren ist simpel.
Delphi-Quellcode:
dazu noch etwas davon
procedure TForm1.Button2Click(Sender: TObject);
begin clientsocket1.Active:=true; end; procedure TForm1.Button3Click(Sender: TObject); begin clientsocket1.Active:=false; end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var test:string; begin test:=clientsocket1.Socket.ReceiveText; memo1.Lines.Add(test); end; procedure TForm1.Button1Click(Sender: TObject); var nachricht:string; begin nachricht:=edit1.Text+char(13); edit1.Clear; clientsocket1.Socket.SendText(nachricht); end; procedure TForm1.FormCreate(Sender: TObject); begin edit1.Clear; end; end. ![]() und schon kanns losgehen. :wink: //edit und das mit "Sockets" |
Re: FTP ohne Indy?
also ich hab jetzt einfach diesen code-schnippel hier genommen mit dem geht es sehr sehr gut und auch schnell.
Delphi-Quellcode:
mFg Chris
function PutFile(Server, Port, UserName, Password, LocalFile, RemoteFile: String): Boolean;
var InternetOpn: hInternet; InternetCon: hInternet; begin InternetOpn := InternetOpen('iexplore', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); InternetCon := InternetConnect(InternetOpn, PChar(Server), // FTP Server StrToInt(Port), // FTP Port PChar(Username), // FTP UserName PChar(Password), // FTP Password INTERNET_SERVICE_FTP, // dwService INTERNET_FLAG_PASSIVE, // dwFlags 0); // dwContext Result := FtpPutFile(InternetCon, pChar(LocalFile), // LocalFile pChar(RemoteFile), // RemoteFile FTP_TRANSFER_TYPE_UNKNOWN, // dwFlags 0); // dwContext InternetCloseHandle(InternetOpn); end; |
Re: FTP ohne Indy?
![]() |
Re: FTP ohne Indy?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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