Embedded FTP Client
Overview
Data Members
Functions
Overview
The embedded FTP (File Transfer Protocol) client is a cross platform FTP implementation used with applications that require FTP client/server functions. The gxsFTPClient class is derived from the gxSocket class and conforms to RFC 959: http://www.faqs.org/rfcs/rfc959.html
Public Data Members
gxSocket gxsFTPClient::ftp_dataSocket used to transfer data to this client.
int gxsFTPClient::ftp_data_portFTP data port client is listening on.
char gxsFTPClient::reply_buf[gxsBUF_SIZE]Buffer used to hold the last reply.
char gxsFTPClient::command_buf[gxsBUF_SIZE]Buffer used to hold the last command.
int gxsFTPClient::time_out_secNumber of seconds before a blocking timeout.
int gxsFTPClient::time_out_usecNumber of microseconds before a blocking timeout.
Functions
gxsFTPClient::gxsFTPClient()
gxsFTPClient::~gxsFTPClient()
gxsFTPClient::CloseDataPort()
gxsFTPClient::ConnectClient()
gxsFTPClient::FTPChDir()
gxsFTPClient::FTPDelete()
gxsFTPClient::FTPGet()
gxsFTPClient::FTPImageType()
gxsFTPClient::FTPList()
gxsFTPClient::FTPLogin()
gxsFTPClient::FTPLogout()
gxsFTPClient::FTPMkDir()
gxsFTPClient::FTPMove()
gxsFTPClient::FTPPWD()
gxsFTPClient::FTPPut()
gxsFTPClient::FTPRmDir()
gxsFTPClient::FTPSize()
gxsFTPClient::FTPStat()
gxsFTPClient::OpenDataPort()
gxsFTPClient::ReadDataPort()
gxsFTPClient::RecvResponse()
gxsFTPClient::SendCommand()
gxsFTPClient::SetTimeOut()
gxsFTPClient::WaitForReply()
gxsFTPClient::WriteDataPort()
gxsFTPClient::gxsFTPClient()Default class constructor.
gxsFTPClient::~gxsFTPClient()Class destructor.
void gxsFTPClient::CloseDataPort()Public member function used to close the FTP data port.
gxSocketError gxsFTPClient::ConnectClient(const char *host, int port = gxSOCKET_FTP_PORT)Public member function used to connect a FTP client to a server. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPChDir(const char *dname)Public member function used to change the current directory to the specified directory. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPDelete(const char *fname)Public member function used to delete the specified file. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPGet(const char *fname, fstream &stream, unsigned &bytes)Public member function used to download a file and write it to the specified file stream. Passes back the total number of bytes downloaded in the "bytes" variable. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPImageType(char type = 'I')Public member function used to set the FTP image type to 'A' for ASCII transfers or 'I' for binary transfers. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPList(char *sbuf, unsigned bytes, int full = 1, const char *args = 0)Public member function used to list the contents of the current working directory. The calling function must allocate a memory buffer for the directory listing and pass the buffer and buffer length to this function. If the directory listing exceeds the number of bytes allocated this function will return a buffer overflow. If the "full" variable is true this function will request a full directory listing. The "args" variable is used to add additional arguments to the list command sent to the FTP server. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPLogin(const char *username, const char *password)Public member function used to logon to an FTP server. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPLogout()Public member function used to logoff an FTP server. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPMkDir(const char *dname)Public member function used to make the specified directory. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPMove(const char *from, const char *to)Public member function used to rename an existing file. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPPWD()Public member function used to get the present working directory. The results are stored in the "gxsFTPClient::reply_buf" string buffer. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPPut(const char *fname, fstream &stream, unsigned &bytes)Public member function used to upload a file from the specified stream to the FTP server. Passes back the total number of bytes uploaded in the "bytes" variable. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPRmDir(const char *dname)Public member function used to remove the specified directory. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPSize(const char *fname)Public member function used to obtain the size of the specified file. The results are stored in the "gxsFTPClient::reply_buf" string buffer. Returns zero if no errors occur.
gxSocketError gxsFTPClient::FTPStat()Public member function used to obtain the current FTP status. The results are stored in the "gxsFTPClient::reply_buf" string buffer. Returns zero if no errors occur.
gxSocketError gxsFTPClient::OpenDataPort()Public member function used to open the client's FTP data port for file transfers. Returns zero if no errors occur.
int gxsFTPClient::ReadDataPort(void *buf, unsigned bytes)Public member function used to read a specified number of bytes from the open data port using a non-blocking read. Returns the total number of bytes received or -1 if any errors occur.
int gxsFTPClient::RecvResponse(char *buf, int bytes, const char *response)Public blocking receive function used to read a reply from an FTP server following a command. If the specified response is not received within the timeout period this function will return false to indicate an error. Returns true if successful.
int gxsFTPClient::RecvResponse(gxsSocket_t s, char *buf, int bytes, const char *response)Public blocking receive function used to read a reply from an FTP server following a command. If the specified response is not received within the timeout period this function will return false to indicate an error. Returns true if successful.
gxSocketError gxsFTPClient::SendCommand(const char *command, const char *response, const char *args = 0)Public member function used to send a command to an FTP server and read the server's response. Returns zero if no errors occur.
void gxsFTPClient::SetTimeOut(int seconds, int useconds)Public member function used to set the FTP timeout values.
int gxsFTPClient::WaitForReply(gxsSocket_t s)Public member function that returns false if a reply time is longer then the timeout values.
int gxsFTPClient::WriteDataPort(void *buf, unsigned bytes)Public member function used to write a specified number of bytes to data port using a block write. Returns the total number of bytes transmitted or -1 if any errors occur.