Sample code for 30+ languages & platforms
Xbase++

SOCKS4 and SOCKS5 Proxy for FTP

See more FTP Examples

Demonstrates 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.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oFtp
LOCAL cLocalFilename
LOCAL cRemoteFilename

nSuccess := 0

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oFtp := CreateObject("Chilkat.Ftp2")

oFtp:Hostname := "ftp.example.com"
oFtp:Username := "login"
oFtp:Password := "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:
oFtp:SocksHostname := "www.mysocksproxyserver.com"
oFtp:SocksPort := 1080
oFtp:SocksUsername := "myProxyLogin"
oFtp:SocksPassword := "myProxyPassword"
//  Set the SOCKS version to 4 or 5 based on the version
//  of the SOCKS proxy server:
oFtp:SocksVersion := 5
//  Note: SOCKS4 servers only support usernames without passwords.
//  SOCKS5 servers support full login/password authentication.

//  Connect and login to the FTP server.
nSuccess := oFtp:Connect()
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

//  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.
nSuccess := oFtp:ChangeRemoteDir("junk")
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

//  Download a file.
cLocalFilename := "c:/temp/hamlet.xml"
cRemoteFilename := "hamlet.xml"

nSuccess := oFtp:GetFile(cRemoteFilename, cLocalFilename)
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

nSuccess := oFtp:Disconnect()

? "File Downloaded!"

oFtp:destroy()