文档库 最新最全的文档下载
当前位置:文档库 › FTP客户端程序设计

FTP客户端程序设计

FTP客户端程序设计
FTP客户端程序设计

XXXX学院课外设计论文

题目FTP客户端程序设计

教学院计算机学院

专业网络工程

班级

姓名

指导教师

年月日

课外设计(论文)

目录

1 绪论 (2)

1.1 研究背景 (2)

1.2 主要工作 (2)

2 相关知识介绍 (2)

2.1 FTP 工作原理 (2)

2.2 FTP工作模式 (3)

2.3 FTP 传输模式 (4)

2.3.1 ASCII传输方式 (5)

2.3.2 二进制传输方式 (5)

3 FTP客户端的设计 (5)

3.1设计目的及工具选择 (5)

3.1.1 设计目的 (5)

3.1.2 设计工具 (5)

3.2 客户端主要模块设计 (6)

3.2.1 客户端连接模块 (6)

3.2.2 上传模块 (8)

3.2.3 下载模块 (11)

4 调试与操作说明 (15)

4.1 运行方法 (15)

4.2运行结果 (15)

5 课程设计总结 (17)

参考文献 (17)

FTP客户端的设计与实现

FTP 是Internet 上用来传送文件的协议。它是为了我们能够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet 上文件如何传送。通过FTP 协议,我们就可以跟Internet 上的FTP 服务器进行文件的上传或下载。本文以实现一个简单易用的FTP 客户端为目标,通过分析FTP 协议的基本工作原理和FTP 的数据传输原理,研究如何使用C++ 工具对FTP 客户端进行设计,选择C++来实现FTP 客户端程序的上传下载等主要功能,并用相应软件提供的一个支持可视化编程的开发环境,从而实现了对FTP 客户端的实现。

1 绪论

1.1 研究背景

FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程

登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件

方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具,你可以在任意一个经过文件

传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现

在已有1000多个(96年的数据)FTP文件服务器对所有INTERNET用户开使用,用户可以通

过与Internet相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去

与他人共享。传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度

的交互性,高效的用户界面等优点

1.2 主要工作

通过客户端可以实现文件的上传和下载。其促进文件的共享(计算机程序或数据)、鼓

励间接或者隐式的使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节和可靠

和高效的传输数据。

2 相关知识介绍

2.1 FTP 工作原理

FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文

件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运FTP协议的服务器相连,访问服务器上的资源和信息。

FTP协议在TCP/IP协议栈中的位置如表1:

表1 TCP/IP协议栈

当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP 客户端程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP 服务器程序,它响应请求把你指定的文件传送到你的计算机中。FTP采用“客户端/服务器”方式,用户要在自己的本地计算机上安装FTP客户端程序。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户端/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载文件,而不允许上载文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。

2.2 FTP工作模式

FTP 采用C/S(客户端/服务器)模式进行通信,但与其他的C/S 模式网络通信协议又有一个很大的区别。通常在进行HTTP 通信或是TELNET 通信的时候,只需要一个端口进行通信。

即客户端只需要连接一个端口进行数据通信。如TELNET 的默认端口是23,用户从头到尾都只需使用这个端口。但是FTP 通信除了有一个默认端口21 之外,还需要其他的端口。其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP 地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP 地址和一个非标准端口。下表是几个著名的TCP 端口号:

表2 TCP 端口号

FTP 中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8 位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。控制连接是建立在USER-PIT 和SERVER-PI 之间用于交换命令与应答的通信链路。数据连接是传输数据的全双工连接,传输数据可以发生在服务器DTP 和用户DTP之间也可以发生在两个服务器DTP 之间,FTP 可以传输非连续的文件,这些文件的一部分称为页。服务器DTP 代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI 的指令传输数据。当然,DTP 也可以转入“被动”状态。服务器FTP 进程,它是和用户FTP 进程一起工作的,它由PI 和DTP 组成。在开始阶段,标准FTP 命令由用户PI 产生并通过控制连接传送到服务器进程。服务器PI 向用户PI 返回标准应答。FTP 命令指定数据连接参数和文件系统操作。用户DTP 在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始FTP 命令的机器上,但用户或用户FTP 进程必须确定它在指定的数据端口上侦听.这个数据连接是全双工的。

2.3 FTP 传输模式

FTP 协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp 协议对话,并且能访问Internet,你可以用ftp 命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

2.3.1 ASCII传输方式

假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理。

2.3.2 二进制传输方式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。

3 FTP客户端的设计

3.1设计目的及工具选择

3.1.1 设计目的

FTP 早已应用在网络的各个方面,比如我们在访问网络上的资源时,经常会遇到需要连接FTP 服务器来下载,或者你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到FTP 客户端。

虽然平时使用windows 自带的IE 浏览器即可实现对FTP 服务器的访问,但是IE 只是个很粗糙的FTP 客户端。IE 浏览器在6.0 以下的版本不支持PASV 方式访问服务器,而且IE 浏览器在登录FTP 服务器的时候,无法查看返回的信息,在出错的时候,无法找到错误的原因,因此在使用上很不方便。

现在大多数的FTP 客户端软件都是收费版的,而且以英文版居多,使用上操作很复杂,目前流行的有CoreFtp、AceFtp 、Ftp Voyager 等,但是大多数用户并不习惯使用这些软件。

本文所设计的FTP 客户端则适合大多数用户使用,界面设计的很简单,使用户可以一目了然,而且具备FTP 客户端的基本功能,可以作为下载、上传文件的工具来使用。

3.1.2 设计工具

程序设计中用到的主要工具就是VC++6.0开发平台,EasyFZS FTP服务器

3.2 客户端主要模块设计

3.2.1 客户端连接模块

运行客户端后,首先是连接服务器,需要输入服务器IP 地址,用户名和密码,然后点击查询,观察是否连接成功,若成功则显示远程文件的列表。

若连接失败,则抛出异常,弹出对话框显示出错误,可知如何修改,然后重新输入服务器IP 地址或用户名或密码,直到连接上服务器。下图为客户端连接流程图:

图3-1 客户端连接流程图

主要代码:

在OnInitDialog()函数中添加成员变量的初始化代码,对服务器名、登录用户名和登录口令的控件变量赋初值:

BOOL CFTP14Dlg::OnInitDialog()

{……//前面是MFC应用程序向导和类向导自动生成的代码

// TODO: Add extra initialization here

m_strFtp=_T(""); //初始化服务器域名

m_strName=_T(""); //初始化登录用户名

m_strPwd=_T(""); //初始化登录口令

UpdateData(FALSE); //更新界面

return TRUE; //return TRUE unless you set the focus to a control } 当用户点击'查询'按钮,执行此函数OnQuery(),代码如下:

void CFTP14Dlg::OnQuery()

{

CInternetSession* pSession; //定义会话对象指针变量

CFtpConnection* pConnection; //定义连接对象指针变量

CFtpFileFind* pFileFind; //定义文件查询对象指针变量

CString strFileName;

BOOL bContinue;

pConnection=NULL; //初始化

pFileFind=NULL;

UpdateData(TRUE); // 获得用户的当前输入(服务器名,用户名和口令)

while(m_listFile.GetCount()!=0) m_listFile.DeleteString(0); // 清除列表框的内容

pSession=new CInternetSession( // 创建Internet会话类对象

AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);

try

{ // 试图建立与指定FTP服务器的连接

pConnection=

pSession->GetFtpConnection(m_strFtp,m_strName,m_strPwd);

} catch (CInternetException* e) {

e->Delete(); // 无法建立连接,进行错误处理

pConnection=NULL;

}

if (pConnection!=NULL)

{

// 创建CFtpFileFind对象,向构造函数传递CFtpConnection对象的指针

pFileFind=new CFtpFileFind(pConnection);

bContinue=pFileFind->FindFile("*"); // 查找服务器上当前目录的任意文件

if (!bContinue) // 如果一个文件都找不到,结束查找

{

pFileFind->Close();

pFileFind=NULL;

}

while (bContinue) // 找到了第一个文件,继续找其它的文件

{

strFileName=pFileFind->GetFileName(); // 获得找到的文件的文件名

// 如果找到的是否目录,将目录名放在括弧中

if (pFileFind->IsDirectory()) strFileName="["+strFileName+"]";

// 将找到的文件或目录名显示在列表框中。

m_listFile.AddString(strFileName);

bContinue=pFileFind->FindNextFile(); // 查找下一个文件}

if (pFileFind!=NULL)

{

pFileFind->Close(); // 结束查询

pFileFind=NULL;

}

}

delete pFileFind; // 删除文件查询对象

if (pConnection!=NULL)

{

pConnection->Close();

delete pConnection; // 删除FTP连接对象

}

delete pSession; // 删除Internet 会话对象

}

3.2.2 上传模块

用户在连接上服务器后,可以在本地列表中选择需要上传的文件,并指定上传位置,将本机上的文件上传至FTP 服务器。

不能选择文件夹,只能选择文件。若上传失败,则抛出异常;如果成功上传,则提示上

传成功。图为上传子模块流程图:

图3-2上传模块流程图

上传模块的主要代码为:

void CFTP14Dlg::OnUpload()

{

//获得当前输入

UpdateData(TRUE);

//禁用用于输入的文本框控件

m_editFtp.EnableWindow(FALSE); //服务器域名输入文本框m_editName.EnableWindow(FALSE); //登录客户名输入文本框m_editPwd.EnableWindow(FALSE); //口令输入文本框

m_staFtp.EnableWindow(FALSE);

m_staName.EnableWindow(FALSE);

m_staPwd.EnableWindow(FALSE);

//禁用查询按钮

m_btnQuery.EnableWindow(FALSE);

CString strSourceName;

CString strDestName;

CFileDialog dlg(TRUE,"","*.*"); //定义文本对话框对象变量if (dlg.DoModal()==IDOK)

{

//获得待上传的本地机文件路径和文件名

strSourceName=dlg.GetPathName();

strDestName=dlg.GetFileName();

//调用Upload函数上传文件

if (Upload (strSourceName,strDestName))

AfxMessageBox("上传成功!",MB_OK|MB_ICONINFORMATION);

else

AfxMessageBox("上传失败!",MB_OK|MB_ICONSTOP);

} else {

//文件选择有错误

AfxMessageBox("请选择文件!",MB_OK|MB_ICONSTOP);

}

//激活查询按钮

m_btnQuery.EnableWindow(TRUE);

//激活用于输入的文本框控件

m_editFtp.EnableWindow(TRUE);

m_editName.EnableWindow(TRUE);

m_editPwd.EnableWindow(TRUE);

m_staFtp.EnableWindow(TRUE);

m_staName.EnableWindow(TRUE);

m_staPwd.EnableWindow(TRUE);

}

BOOL CFTP14Dlg::Upload(CString strSName, CString strDName)

{ CInternetSession* pSession;

CFtpConnection* pConnection;

pConnection=NULL;

//创建Internet会话

pSession=new CInternetSession( AfxGetAppName(), 1,

PRE_CONFIG_INTERNET_ACCESS);

try{

//建立FTP连接

pConnection=pSession->GetFtpConnection( m_strFtp,

m_strName, m_strPwd); }

catch (CInternetException* e)

{ //错误处理

e->Delete();

pConnection=NULL;

return FALSE; }

if (pConnection!=NULL)

{ //上传文件

if (!pConnection->PutFile(strSName,strDName))

{ //上传文件错误

pConnection->Close();

delete pConnection;

delete pSession;

return FALSE; } }

//清除对象

if (pConnection!=NULL)

{ pConnection->Close();

delete pConnection; }

delete pSession;

return TRUE; }

3.2.3 下载模块

当用户在服务器文件列表中选择想要下载的文件后,选择需要下载文件在本机上的存储位置,设置上传模式为被动模式;将服务器上的文件下载至本机,如果成功下载,则提示下载成功,若失败则抛出异常,此过程可连续进行直到想退出。下图为下载子模块流程图:

图3-2 下载模块流程图下载模块的主要代码:

void CFTP14Dlg::OnDownload()

{ //获得当前输入

UpdateData(TRUE);

int nSel=m_listFile.GetCurSel();

CString strSourceName;

//获得用户在列表框中的选择

nSel=m_listFile.GetCurSel();

m_listFile.GetText(nSel,strSourceName);

if (strSourceName.GetAt(0)!='[' )

{ //选择的是文件

CString strDestName;

CFileDialog dlg(FALSE,"","*.*"); //定义了一个文件对话框对象变量if (dlg.DoModal()==IDOK) //激活文件对话框

{ //获得下载文件在本地机上存储的路径和名称

strDestName=dlg.GetPathName();

//调用函数下载文件

if (Download (strSourceName,strDestName))

AfxMessageBox("下载成功!",MB_OK|MB_ICONINFORMATION);

else

AfxMessageBox("下载失败!",MB_OK|MB_ICONSTOP);

} else {

AfxMessageBox("请写入文件名!",MB_OK|MB_ICONSTOP);

}

} else {

//选择的是目录

AfxMessageBox("不能下载目录!\n请重选!",MB_OK|MB_ICONSTOP);

}

//禁用下载按钮

m_btnDownload.EnableWindow(FALSE);

//激活查询和上传按钮

m_btnUpload.EnableWindow(TRUE);

m_btnQuery.EnableWindow(TRUE);

//激活用来输入的文本和编辑框控件

m_editFtp.EnableWindow(TRUE);

m_editName.EnableWindow(TRUE);

m_editPwd.EnableWindow(TRUE);

m_staFtp.EnableWindow(TRUE);

m_staName.EnableWindow(TRUE);

m_staPwd.EnableWindow(TRUE);

BOOL CFTP14Dlg::Download(CString strSName, CString strDName) { CInternetSession* pSession; //定义会话对象变量指针CFtpConnection* pConnection; //定义连接对象变量指针

pConnection=NULL;

//创建Internet会话对象

pSession=new CInternetSession( AfxGetAppName(), 1,

PRE_CONFIG_INTERNET_ACCESS);

try{

//建立FTP连接

pConnection=pSession->GetFtpConnection(m_strFtp,

m_strName, m_strPwd); }

catch (CInternetException* e)

{ //错误处理

e->Delete();

pConnection=NULL;

return FALSE; }

if (pConnection!=NULL)

{ //下载文件

if (!pConnection->GetFile(strSName,strDName))

{ //下载文件错误

pConnection->Close();

delete pConnection;

delete pSession;

return FALSE; } } //清除对象

if (pConnection!=NULL)

{ pConnection->Close();

delete pConnection; }

delete pSession;

return TRUE;

}

4 调试与操作说明

4.1 运行方法

在程序中输入服务器的IP、用户名、和密码,点击“查询”按钮即可等待连接服务器。然后可选择本地文件上传到服务器或选择远程文件下载到本地。

4.2运行结果

FTP服务器连接前和连接后,此过程要正确的输入服务器IP 地址,用户名和密码,本地文件栏的文件为本机D盘的内容,连接成功后在目录文件列表会出现服务器上的文件,则也标志着连接成功:

点击上传按钮,弹出对话框,如果未选择文件就会弹出对话框,“请选择文件”:

否则提示上传成功:

同理选中文件点下载按钮时,出现下载成功提示框则表示下载成功:

5 课程设计总结

参考文献

[1] 谢希仁.计算机网络(第五版)[M].北京:电子工业出版社,2008:232—234.

[2]叶树华、高志红.网络编程实用教程 [M].北京:人民邮电出版社,2006: 199—237

FTP客户端软件的设计与实现

XX大学毕业设计 题目:FTP客户端软件的设计与实现指导教师:XXX 职称:副教授 学生姓名: XXX 学号: 201XXXXXXXXX 专业:计算机科学与技术 院(系):信息工程学院 完成时间: 2014 年 5 月 9 日 2014 年 5 月 9 日

FTP客户端设计与实现 摘要 信息时代的到来,信息的交流变得越来越重要,而信息的交流离不开文件的传输。基于FTP的文件传输系统意在搭建一个文件传输平台,使其在安全、透明、快捷的环境下来进行文件传输。 网络上进行信息共享或文件传输,都是基于某种协议而进行的,FTP是人们在网络中进行文件传输普遍采用的一种协议。系统使用流行的Java作为开发语言,采用C/S模式作为网络结构,利用套接字编程实现多线程传输。 论文首先对现在常用的FTP进行了分析,然后介绍了系统的需求分析和设计过程,给出了服务器和客户端的功能模块及总体流程,最后给出了网络文件传输系统服务器和客户端的编码实现,并对系统各个功能的实现进行了测试,分析优缺点和总结。 通过测试,该系统实用、界面简单,能进行文件上传和下载并支持多线程,是一个比较好的文件传输系统。 关键词:文件传输协议,TCP/IP,多线程,套接字

Design and implementation of an FTP client Abstract The arrival of the information age, the exchange of information is becoming increasingly important, and the exchange of information can not be separated file transfer . FTP-based file transfer system is intended to set up a file transfer platform , so in a safe , transparent and efficient environment down the file transfer. Information sharing on a network or file transfer , are carried out based on a protocol , FTP is a protocol for file transfer people to be widely used in the network. The system uses the popular Java as a development language , using C / S mode as the network structure , the use of socket programming multithreaded transfers. Firstly, on the now commonly used FTP analyzed, and then introduced the system requirements analysis and design process , gives the server and client modules and the overall process . Finally, network file transfer server and client code implementation, and realization of various functions system has been tested , analyzed and summarized the advantages and disadvantages . Through testing, the system is practical , simple interface , files can be uploaded and downloaded and supports multi-threading , is a good file transfer system . Keywords : file transfer protocol , TCP / IP, multi-threaded, socket

FTP上传常见问题

FTP上传常见问题 1、为什么无法上传,提示密码不对? 请查看您的登陆名密码填写是否正确?因为如果密码是复制的话,可能会复制出空格。另外,我们给您的初始密码是个英文的,也许是字母l被认为是数字1,字母O被认为是数字0。最后,您要看一下您在ftp登陆时选择的登陆类型是否是普通。 2、为什么无法上传网页,FTP故障-提示“无法连接服务器”错误? 问题出现几种原因:FTP客户端程序设置问题,客户上网线路问题,FTP服务器端问题。处理方法:建议您使用CUTPFTP软件来上传客户的网页,在“FTP主机地址处”最好填写IP 地址,如果您上传时提示socket错误的话,请您检查一下您使用软件的编辑菜单下的连接中防火墙里是否有一个使用了pasv模式?如果选中的话,您把此选项取消即可连接主机。 再检查FTP软件的端口是否设置为默认的21,FTP主机设置是否正确,最后查一下您是否使用了某些防火墙或网关代理软件,看这些软件是否将FTP的21端口屏蔽掉了(如果是默认选择,请把它取消)。如果以上都没问题,请与我公司联系。 3、为什么FTP时已经通过身份验证,但总列不出目录? 问题出现原因:您使用的上传软件的FTP客户端程序不应该选用PASV mode和firewall setting 处理方法:建议使用Cuteftp4.2软件,在Edit->Setting…->Connection->Firewall去掉”PASV mode”这个选项即可。FTP能登录,但里面目录无法显示是因为我们加装了防火墙的原因。请把上传软件的PASV模式关掉,在上传软件的属性里去掉PASV模式,因为这个选项默认是打勾的,去掉就可以了。 4、为什么无法上传,提示连接时找不到主机? 首先请您检查一下您的域名是否做过域名解析?检测方法:您可以在DOS提示符下输入ping域名如果可以ping通的话,则您可以在FTP软件中“FTP主机地址处”填写您的域名,如果ping不通的话,则您需要在“FTP主机地址处”填写您主机的IP地址。如果提示FTP 地址写错:检查FTP地址是否正确,特别是检查最近FTP地址是否有变更过 5、我的网站FTP密码验证可通过,只是在最后不能目录列表列出,显示:LLIST425,这是什么原因? 原因是由于您的虚拟主机空间已用完造成的,请使用FTP登陆,删除一些不必要的文件即可。 6、上传的文件超过我的磁盘限额会出现什么情况? 您将得到系统提示,无法再上传任何东西(文件上传后的字节数为零)。 7、上传网页后,访问结果为”Forbidden”(禁止访问),是什么原因? 问题出现原因:这种结果是由于您相应的目录下,缺少一个索引文件,其名称必须是index.html,index.htm或index.shtml中的一个,缺少索引文件,服务器就会出这种提示,以避免别人看到您的目录下有哪些文件。 处理方法:请您将文件名改成index.html即可。

ftp上传新文件删除旧文件方法

注意:mput上传可以带目录,put只上传文件,但put上传只能上传登录ftp 前停留的目录。mput上传的文件路径,用户必须有访问权限。否则无法上传。 #!/bin/sh echo>/home/oracle/ftp/Thu_ftp rq=$(date +%Y%m%d) find /u01/backup/data/ora_rman_backup/ticket1/Thu/log/ | grep $rq> /home/oracle/ftp/Thu_ftp echo "open 192.168.248.106" >>/home/oracle/ftp/ftpcmd echo "user ftp Sports-BsT_BeiJing ">>/home/oracle/ftp/ftpcmd awk '{print "prompt mput ",$0;}' ftpfile>>/home/oracle/ftp/ftpcmd echo "quit">>/home/oracle/ftp/ftpcmd echo>/home/oracle/ftp/ftp.out ftp -ivn/home/oracle/ftp/ftp.out egrep -i "ABORT|NOT|DENIED|ERROR|FAIL|A DIRECTORY|NO SUCH" ftp.out>/dev/null if [ $? -ne 0 ];then exit fi exit 还有一种方法 justkk说的也要先把上传的文件找出来写到ftpfile里 #!/bin/ksh ( echo "user abcabc" echo "bin" cat ftpfile|xargs -n1 echo put ) | ftp -inv ftp-ip-address 这个还比较麻烦,可以把ftp的输出信息定向到一个文件中,检查文件中是否有错误信息 ftp -ivnftp.out egrep -i "ABORT|NOT|DENIED|ERROR|FAIL|A DIRECTORY|NO SUCH" ftp.out>/dev/null

FTP客户端设计与实现

《网络编程技术课程设计》论文2012 — 2013学年第二学期 题目:FTP客户端设计与实现 专业班级:软件工程Java10-06班 组员: 指导老师: 日期:2013-07-04

目录 摘要 (2) 关键词 (2) 1.引言 (2) 2.FTP协议分析 (2) 2.1FTP工作原理 (2) 2.2FTP工作模式 (4) 2.3FTP传输模式 (6) 2.3.1ASCII传输方式 (6) 2.3.2二进制传输方式 (6) 3.FTP客户端的总体设计 (6) 3.1设计目的及工具的选择 (6) 3.1.1设计目的 (6) 3.1.2设计工具 (7) 3.1.3FtpClient类 (7) 3.2客户端主要模块设计 (7) 3.2.1客户端功能模块 (8) 3.2.2客户端界面设计 (9) 3.3数据流程图 (9) 3.3.1客户端连接流程图 (9) 3.3.2上传子模块流程图 (11) 3.3.3下载子模块流程图 (12) 4.FTP客户端程序实现 (14) 4.1客户端显示界面实现 (14) 4.1.1数据输入界面详细设计 (14) 4.1.2服务器文件信息显示界面详细设计 (14) 4.1.3上下载队列显示界面和信息显示界面详细设计 (15) 4.1.4操作按钮模块详细设计 (15) 4.2功能模块实现 (16) 4.2.1连接服务器 (16) 4.2.2上传文件 (16) 4.2.3下载文件 (17) 5.功能运行测试 (17) 6.结语 (20) 参考文献 (21) 附录 (22)

FTP客户端的设计与实现 摘要:FTP是Internet上用来传送文件的协议。它是为了我们能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。通过FTP 协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用Java工具对FTP客户端进行设计,选择Java类库中的FtpClient类来实现FTP客户端程序的上传下载等主要功能,并用eclipse软件提供的一个支持可视化编程的开发环境,从而实现了对FTP客户端的开发。 关键词:FTP协议 ,工作原理,FtpClient,上传下载 引言 目前,FTP服务已经是网络上广泛使用的一种服务了,它是建立在FTP协议上的用于网络环境下进行文件传输的一种文件传输系统,几乎可以传输各种类型的文件,如文本文件,声音文件,图像文件等。一个文件传输系统有服务器端程序和客户端程序共同组成的,客户端程序提供用户操作的界面并完成文件的上传和下载。在网络应用中,FTP有着非常重要的地位,在Internet中一个十分重要的就是资源,而各种各样的资源大多数都是放在FTP服务器中的,为了获得这些资源,我们必须使用FTP客户端软件。目前流行的有cuteFTP,WS_FTP,ByteCatcher,FTP Voyage等。为了方便用户的使用,本文将介绍一种基于Java 的FTP客户端程序的设计与实现。 本文首先分析了FTP协议,FTP的工作原理等,然后介绍了如何使用Java 工具来设计和实现一个简单的FTP客户端。使用本FTP客户端,可以使用户轻松的下载、上传网络资源。 2.FTP协议分析 2.1FTP的工作原理 FTP(FileTransferProtocol),是文件传输协议的简称。用于Internet上

ftp客户端的设计与实现

《计算机网络》 课程设计说明书 题目: ftp客户端的设计与实现 学院:计算机科学与工程学院 专业:信息安全 2015年03 月24日

摘要 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上载”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上载”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous,Internet上的任何人在任何地方都可使用该用户ID。 关键字:FTP;java;远程连接;上传;下载

FTP服务器与客户端设计与开发

FTP服务器与客户端设计与开发 详细设计 程序包括5个主要功能: 1.服务器的运行:启动和停止FTP服务 2.用户管理:添加用户,删除用户和设置用户权限 3.服务器配置:设置服务器开放端口,最大连接数等 4.运行统计:统计当前服务器运行时期上传下载的流量等等 5.安全设置:允许连接服务器的IP列表,以及禁止访问的IP 服务器的运行模块 功能:负责FTP服务器的运行。 使用类:CFTPServer类,CApplicationDlg类,CListenSocket类,CConnectThread类,CConnectSocket类 各种类的功能: 1.CFTPServer类:是CWnd的子类,作为程序的顶层类,负责实现或者调用各个成员函数 2.CApplicationDlg类:CDialog类的子类,实现程序主窗口。 3.CListenSocket类:负责监听FTP客户端连接,并实现有效连接 https://www.wendangku.net/doc/652072910.html,onnectThread类:负责实现并保证多个连接的有效性。 https://www.wendangku.net/doc/652072910.html,onnectSocket类:实现FTP命令的解析,数据的发送和接收 CFTPServer类 作为服务器的顶层类,实现服务器开始运行时的所有成员函数 申明如下: class CFTPServer : public CWnd { friend CConnectSocket;//CConnectSocket作为其友元类,可以访问内部私有数据成员 public: void SetGoodbyeMessage(LPCTSTR lpszText);//发送退出信息 void SetWelcomeMessage(LPCTSTR lpszText);//发送欢迎信息 void SetTimeout(int nValue);//设置暂停时间 void SetPort(int nValue);//设置端口 void SetMaxUsers(int nValue);//设置最大连接数 void SetStatisticsInterval(int nValue);//统计时间间隔 BOOL IsActive();//是否有效 void Stop(); BOOL Start(); CFTPServer(); virtual ~CFTPServer(); CUserManager m_UserManager;//用户管理对象 CSecurityManager m_SecurityManager;//安全策略

FTP数据包的详细分析

FTP协议分析与源码阅读 一、什么是FTP协议 Transfer Protocal),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。 Transfer Protocol) 1、FTP的作用: 正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 2、FTP工作原理 拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP 客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP 客户程序,操作上要简洁方便的多。简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议(文件传输协议) 一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet 上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP 协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。 在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。 使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet 上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。 匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无

FTP客户端程序设计

XXXX学院课外设计论文 题目FTP客户端程序设计 教学院计算机学院 专业网络工程 班级 姓名 指导教师 年月日

课外设计(论文) 目录 1 绪论 (2) 1.1 研究背景 (2) 1.2 主要工作 (2) 2 相关知识介绍 (2) 2.1 FTP 工作原理 (2) 2.2 FTP工作模式 (3) 2.3 FTP 传输模式 (4) 2.3.1 ASCII传输方式 (5) 2.3.2 二进制传输方式 (5) 3 FTP客户端的设计 (5) 3.1设计目的及工具选择 (5) 3.1.1 设计目的 (5) 3.1.2 设计工具 (5) 3.2 客户端主要模块设计 (6) 3.2.1 客户端连接模块 (6) 3.2.2 上传模块 (8) 3.2.3 下载模块 (11) 4 调试与操作说明 (15) 4.1 运行方法 (15) 4.2运行结果 (15) 5 课程设计总结 (17) 参考文献 (17)

FTP客户端的设计与实现 FTP 是Internet 上用来传送文件的协议。它是为了我们能够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet 上文件如何传送。通过FTP 协议,我们就可以跟Internet 上的FTP 服务器进行文件的上传或下载。本文以实现一个简单易用的FTP 客户端为目标,通过分析FTP 协议的基本工作原理和FTP 的数据传输原理,研究如何使用C++ 工具对FTP 客户端进行设计,选择C++来实现FTP 客户端程序的上传下载等主要功能,并用相应软件提供的一个支持可视化编程的开发环境,从而实现了对FTP 客户端的实现。 1 绪论 1.1 研究背景 FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程 登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件 方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具,你可以在任意一个经过文件 传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现 在已有1000多个(96年的数据)FTP文件服务器对所有INTERNET用户开使用,用户可以通 过与Internet相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去 与他人共享。传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度 的交互性,高效的用户界面等优点 1.2 主要工作 通过客户端可以实现文件的上传和下载。其促进文件的共享(计算机程序或数据)、鼓 励间接或者隐式的使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节和可靠 和高效的传输数据。 2 相关知识介绍 2.1 FTP 工作原理 FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文 件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运FTP协议的服务器相连,访问服务器上的资源和信息。 FTP协议在TCP/IP协议栈中的位置如表1:

FTP文件上传(纯代码)

完整程序FTP上传 package com.zhcw.update.msisdn; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import https://www.wendangku.net/doc/652072910.html,.TelnetInputStream; import https://www.wendangku.net/doc/652072910.html,.TelnetOutputStream; import https://www.wendangku.net/doc/652072910.html,.ftp.FtpClient; /** * Title: FTP上传功能类 * Description: FTP上传功能类 * Copyright: Copyright (c) 2012 * Company: 北京世纪国彩科技有限公司 * * @author chenchuang * @version 1.0 */ public class FtpUtil { private String ip=""; private String username=""; private String password=""; private int port=-1; private String path=""; FtpClient ftpClient=null; OutputStream os=null; FileInputStream is=null; public FtpUtil(String serverIp ,String username,String password){ this.ip=serverIp; https://www.wendangku.net/doc/652072910.html,ername=username; this.password=password; } public FtpUtil(String serverIp , int port,String username,String password){

基于WINSOCK的FTP客户端的实现

基于Winsock的FTP客户端的实现 目录 一、课程设计基本要求 (2) 课程设计目的 (2) 课程设计任务 (2) 课程设计要求 (2) 二、程序简介 (2) 开发环境 (2) 程序界面 (3) 三、原理概述 (4) FTP协议 (4) 应用WinSock实现网络通信 (5) 四、主要数据结构 (6) 五、CFTPClient类 (8) 控制连接的实现 (8) 数据连接的实现 (11) 六、体会 (13)

一、课程设计基本要求 ●课程设计目的 1 加深对TCP/IP协议的理解。 2 了解FTP协议的工作原理。 3 掌握用MFC编写FTP协议的实现程序。 ●课程设计任务 在Visual C++6.0的环境下实现FTP下载工具。 ●课程设计要求 1 了解FTP协议的工作原理。(RFC765 , RFC2228, RFC2640, RFC2773) 2 主要是基于TCP/IP的Winsock编程,用Visual C++6.0实现一个基于FTP协议的FTP下载工具(客户端)。 二、程序简介 ●开发环境 操作系统:Microsoft Windows XP pro 编译环境:Microsoft Visual C++ 6.0 CPU:PM-1.7GHz 内存:768MB 硬盘:40MB

分辨率:32bit 1024×768 程序界面

三、原理概述 FTP协议 FTP是Internet上基于TCP/IP协议传输文件的应用层协议。FTP规定了数据包的格式、数据包头部结构和命令结构等等。FTP应用命令行方式传输文件。FTP在RFC959中定义。FTP应用TCP传输而不是UDP。 由FTP提供的文件传输是将一个完整的文件从一个系统复制到另一个系统中。应用FTP首先需要登录FTP服务器,或者通过允许匿名FTP来使用FTP服务器。FTP最早的设计是用于两台不同的主机即不同的操作系统下,不同的文件结构,不同的字符集。 FTP是建立两个TCP连接(见图) ,一个用于传输数据,另一个用于传输命令。每个FTP 主机都有一个“协议解析器”( Pr ot oco1 I nter p reter, PI )模块,负责解释并执行FTP

VC++的FTP客户端设计与开发(含源文件)

摘要 FTP是Internet上用来传送文件的协议。它是为了我们能够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用VC+=工具对FTP客户端进行设计,用VC++6.0编程工具设计和实现了FTP服务与客户端设计,从而实现了对FTP 客户端的开发。 关键词: VC++;文件传输协议;客户端

Abstract FTP is a protocol used to transfer files on the Internet. It is enacted in order that we can send each other files on the Internet file transfer standards, regulations on how to send files on the Internet. Through the FTP protocol, we can tell the FTP server on the Internet for file upload or download. This article is an easy-to-use FTP client in order to achieve the goal through the analysis of the basic working principle of the FTP protocol and FTP data transmission principle, how to use VC + = tools FTP client to design, designed using VC + +6.0 programming tools and FTP service, and client design that enables the development of the FTP client Key words:VC++; FTP, Client

如何使用ftp上传文件

如何使用ftp上传文件.txt举得起放得下叫举重,举得起放不下叫负重。头要有勇气,抬头要有底气。学习要加,骄傲要减,机会要乘,懒惰要除。人生三难题:思,相思,单相思。FTP新手入门及构建个人FTP服务器从O开始 FTP简介 FTP的全称是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。而FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。当它们运行时,用户就可以连接到服务器上下载文件,也可以将自己的文件上传到FTP 服务器中。因此,FTP的存在,大大方便了网友之间远程交换文件资料的需要,充分体现了互联网资源共享的精神。现在许多朋友都已经用上了宽带网,而且硬盘也有足够的空间,完全可以通过软件手段把自己的电脑变为一台FTP服务器,和网络中的朋友们一起分享大家各自收藏的好东东! 架设FTP服务器,其实并没有技术难度,只需用Serv-U这个软件就可轻松搞定了。Serv-U 支持所有版本的Windows操作系统,可以设定多个FTP服务器,可以限定登录用户的权限、登录目录及服务器空间大小,功能非常完善。以下笔者就以Serv-U汉化版为例,给大家讲讲架设个人FTP的具体步骤。 首先下载安装Serv-U,运行,将出现“设置向导”窗口,我们就来跟随着这个向导的指引,一步步进行操作。 1. 设置Serv-U的IP地址与域名 一路单击“下一步”跳过系统提示信息,来到“您的IP地址”窗口,这里要求输入本机的IP地址。 如果你的电脑有固定的IP地址,那就直接输入;如果你只有动态IP(例如拨号用户),那该处请留空,Serv-U在运行时会自动确定你的IP地址。 下一步,进行“域名”设定。这个域名只是用来标识该FTP域,没有特殊的含义,比如笔者输入“https://www.wendangku.net/doc/652072910.html,”。 接下来的“系统服务”选项必须选“是”,这样当你的电脑一启动,服务器也会跟着开始运行。 2.设置匿名登录 匿名访问就是允许用户以Anonymous为用户名,无需特定密码即可连接服务器并拷贝文件。如果你不想让陌生人随意进入你的FTP服务器,或想成立VIP会员区,就应该在“匿名账号”窗口中选“否”,这样就只有经过你许可的用户才能登录该FTP。鉴于匿名登录尚有一定的实用需求,笔者在此选“是”。 之后就要为匿名账户指定FTP上传或下载的主目录,这是匿名用户登录到你的FTP服务器后看到的目录。设定后,向导还会继续询问你是否将匿名用户锁定于此目录中,从安全的角度考虑,建议选“是”。这样匿名登录的用户将只能访问你指定的主目录及以下的各级子目录,

FTP客户端的设计与实现模板

附件1:课程设计(学年设计、学年论文)任务书模版FTP客户端的设计与实现课程设计任务书

附件2:设计说明书(或论文)模版 一、选题背景(标题:四号仿宋加粗,顶格,行间距:24磅,上下间距:段前0.5行,段后0.5行)(内容:用小四号仿宋,首行空两格) 文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是Internet使用最广泛的协议之一。 本实验的目的是,学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP 网络应用程序基本的设计方法和实现技巧。应达到的要求是根据账号和

密码登录指定的FTP服务器,可以查看服务器内容列表,下载选定的文件,重命名或删除指定的文件/文件夹,也可以把本地文件上传到服务器上。 二、方案设计(或概要设计) 流程图如图[1]图[2]所示: 图[1].服务器监听

图[2].客户端 由图[1]的服务器端建立一个监听,然后根据图[2]启动客户端,实现一系列要求。 三、详细设计 我们的计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows 环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求学生利用这些功能,设计和实现一个简单的文件传送协议。 1、服务器端的主要代码 由于要实现多线程,必须把功能独立出来,且包装成线程,首先建一个监听线程,主要负责接入客户,并启动另一个客户线程。 具体程序如下:(其中包括一些说明) //包含需要用到的头文件 #include "Winsock.h" #include "windows.h" #include "stdio.h"

FTP客户端的设计与实现

FTP客户端的设计与实现 摘要FTP是Internet上用来传送文件的协议。它是为了我们能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。本设计以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用VC++语言对FTP客户端进行设计,用Visual Studio2010设计和实现了FTP客户端的开发。 关键词FTP的工作原理;VC++;FTP客户端 1绪论 1.1 课题背景 FTP是互联网上使用最广泛的文件传输协议[1]。在互联网早期曾占据整个互联网通信的三分之一,它解决了在不同操作系统下处理文件格式的不兼容性。传统方式需要在DOS 下输入命令,对于普通用户是件极困难的事。但有了FTP客户端软件后,只要轻点几下鼠标就可以完成所有操作。FTP客户端应该包含以下功能:登录,浏览目录,上传和下载[2]。它已成为人们不可缺少的软件之一。 1.2 研究现状 FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一。起初,FTP 并不是应用于IP网络上的协议,而是20世纪60~80年代美国国防部组建的ARPANET网络中,用于计算机间的文件传输的协议。FTP服务的一个非常重要的特点是其实现可以独立于平台,也就是说在UNIX、DOS、Windows等操作系统中都可以实现FTP的客户端和服务器[3]。尽管目前已经普遍采用HTTP方式传送文件,但FTP仍然是跨平台直接传送文件的主要方式。 目前市面上可通过正规渠道获得的成熟的FTP软件如Server-U、Cuteftp、Transmit、Flashfxp等都是国外开发的,需要注册、付费使用。从其他渠道获取的FTP软件,则存在安全方面的问题。国内也很难找到免费、安全的FTP软件。虽然操作系统有自带的FTP 软件,但它是基于命令行的,没有友好的用户操作界面,对用户的计算机技能要求较高,一般的用户也不会用,而且不支持断点续传和文件夹的上传、下载等功能[4]。因此,设计与实现一个开源的、适合大众需求的FTP客户端和服务器软件是有必要的,是符合社会发展需要的。

VC文件上传和下载(FTP实现)

VC实现文件上传下载(FTP) //连接ftp服务器 void CMyFtpDlg::OnConnect() { UpdateData(TRUE); //新建对话 m_pInetSession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_AC CESS); try { //新建连接对象 m_pFtpConnection=m_pInetSession-> GetFtpConnection(m_strServer,m_strUserName, m_strPassword); } catch(CInternetException *pEx) { //获取错误 TCHAR szError[1024]; if(pEx-> GetErrorMessage(szError,1024)) AfxMessageBox(szError); else AfxMessageBox( "There was an exception "); pEx-> Delete(); m_pFtpConnection=NULL; return; } m_pRemoteFinder = new CFtpFileFind(m_pFtpConnection); //获得服务器根目录的所有文件并在列表框中显示 BrowseDir( " ",&m_ctrlRemoteFiles,m_pRemoteFinder,&m_arrRemoteFiles); } //下载单个文件 void CMyFtpDlg::DownFile(FILEITEM fileItem) { if(fileItem.bDir == TRUE) { AfxMessageBox( "本程序暂时不支持下载整个文件夹,请选择文件下载"); } else { //格式化文件名

计算机网络课程设计JAVA实现FTP客户端资料

河南理工大学 计算机科学与技术学院课程设计报告 2015— 2016学年第一学期 课程名称计算机网络 设计题目FTP客户端的设计与实现姓名*** * 学号361309010410 专业班级计科合1304

指导教师孟慧 2016年1 月9 日 1 目录 第一章序言.................................................................................................................21.1课程设计题目 (3) 1.2开发工具.........................................................................................3第二章系统需求分析...............................................................................................52.1功能需求.........................................................................................52.2 系统模型设计...................................................................................52.3 系统工作流程设计.. (5) 第三章系统设计·········································································································63.1实现功能·························································································63.2函数说明·························································································63.2.1界面设计代码 6 (3) .2.2功能实现函数 9 ......................................................................................第四章系统实现.......................................................................................................134.1界面设计的实现................................................................................314.1.1连接服务器.. (13)

FTP上传下载方式有以下几种

FTP上传下载方式有以下几种 1.Windows下免费开源的FTP客户端软件FileZilla,在/public/softwares下有64位和32位版本。 2.Windows下流行的商业软件FlashFXP、SmartFTP,软件位于/public/softwares 3.Linux中GNOME桌面环境中运行的FTP客户端软件:gftp,软件位于/public/softwares 4.使用FTP命令:步骤如下 (1)“开始”-“运行”-输入“FTP”回车 (2)open 123.57.37.107 回车 (3)/*命令行会提示你输入用户名,不同的OS版本(XP,Vista,Win7)提示可能会有所差别*/ (4)/*提示你输入密码,在密码输入过程中不会显示也不会移动光标,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可 以重新输入用户名和密码。*/ (5)cd public /*进入public文件夹*/ (6)dir /*你成功登陆后就可以用dir查看命令查看FTP服务器中的文件及目录,用ls命令只可以查看文件。*/ (7)mkdir rsfile /*在FTP服务器上根目录下建立rsfile目录。*/ (8)cd rsfile /*进入目录rsfile,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。*/ (9)bin /*采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个命令,上传下载会很慢。*/ (10)lcd D:\ftpin /*定位本地默认文件夹。这里的lcd命令类似于平时命令行下的cd*/

相关文档