FTP端口号20和21

个主动模式的FTP连接建立要遵循以下步骤:

客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。

客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

摘自百度百科

 

第二篇:FTP.h

//链接服务器extern unsigned int UploadBytes;extern unsigned int DownloadBytes;int ftp_connect( char *host, int port, char *user, char *pwd );//断开服务器int ftp_quit( int c_sock);//设置表示类型int ftp_type( int c_sock, char mode );//改变工作目录int ftp_cwd( int c_sock, char *path );//回到上一层目录int ftp_cdup( int c_sock );//创建目录int ftp_mkd( int c_sock, char *path );//列表int ftp_list( int c_sock, char *path, void **data, unsigned long long *data_len);//下载文件int ftp_retrfile( int c_sock, char *s, char *d ,unsigned long long *stor_size, int *stop);//int ftp_retrfile1( int c_sock, char *s, char *d );//上传文件int ftp_storfile( int c_sock, char *s, char *d ,unsigned long long *stor_size, int *stop);//修改文件名&移动目录int ftp_renamefile( int c_sock, char *s, char *d );//删除文件int ftp_deletefile( int c_sock, char *s );//删除目录int ftp_deletefolder( int c_sock, char *s );