Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) SOCKS4 and SOCKS5 Proxy for FTPDemonstrates how to connect to an FTP server through a SOCKS4 or SOCKS5 proxy. Both SSL/TLS and non-secure FTP communications may use SOCKS4 and SOCKS5 proxies.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Ftp2; ... procedure TForm1.Button1Click(Sender: TObject); var ftp: HCkFtp2; success: Boolean; localFilename: PWideChar; remoteFilename: PWideChar; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. ftp := CkFtp2_Create(); CkFtp2_putHostname(ftp,'ftp.example.com'); CkFtp2_putUsername(ftp,'login'); CkFtp2_putPassword(ftp,'password'); // To use a SOCKS4 or SOCKS5 proxy, simply set the following // properties prior to connecting: // The SOCKS hostname may be a domain name or // IP address: CkFtp2_putSocksHostname(ftp,'www.mysocksproxyserver.com'); CkFtp2_putSocksPort(ftp,1080); CkFtp2_putSocksUsername(ftp,'myProxyLogin'); CkFtp2_putSocksPassword(ftp,'myProxyPassword'); // Set the SOCKS version to 4 or 5 based on the version // of the SOCKS proxy server: CkFtp2_putSocksVersion(ftp,5); // Note: SOCKS4 servers only support usernames without passwords. // SOCKS5 servers support full login/password authentication. // Connect and login to the FTP server. success := CkFtp2_Connect(ftp); if (success <> True) then begin Memo1.Lines.Add(CkFtp2__lastErrorText(ftp)); Exit; end; // Change to the remote directory where the file is located. // This step is only necessary if the file is not in the root directory // for the FTP account. success := CkFtp2_ChangeRemoteDir(ftp,'junk'); if (success <> True) then begin Memo1.Lines.Add(CkFtp2__lastErrorText(ftp)); Exit; end; // Download a file. localFilename := 'c:/temp/hamlet.xml'; remoteFilename := 'hamlet.xml'; success := CkFtp2_GetFile(ftp,remoteFilename,localFilename); if (success <> True) then begin Memo1.Lines.Add(CkFtp2__lastErrorText(ftp)); Exit; end; success := CkFtp2_Disconnect(ftp); Memo1.Lines.Add('File Downloaded!'); CkFtp2_Dispose(ftp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.