精华内容
下载资源
问答
  • 网络环境中的一项基本应用就是将文件从一台计算机...2) 该FTP客户端程序具有以下基本功能:能完成FTP链接的打开和关闭操作;能执行文件的上传和下载;能完成目录的创建、删除等有关操作。要求可以传输简单的文本文件。
  • 方便、简单、快捷又明了的解决问题,下面有六款ftp客户端软件的介绍。 第一款:IIS7服务器管理工具 这款工具是真的好用,童叟无欺的那种好用。在我心里它是排在中文版java ftp工具类中的榜首的。它不仅拥有每个java ...

    对于ftp客户端软件,你了解多少?其实一般人也接触不到这种软件。ftp客户端软件主要是针对从事网站管理的工作人员比较有利的一款工具。可以帮助他们快速的解决工作中的问题。方便、简单、快捷又明了的解决问题,下面有六款ftp客户端软件的介绍。

    第一款:IIS7服务器管理工具
    这款工具是真的好用,童叟无欺的那种好用。在我心里它是排在中文版java ftp工具类中的榜首的。它不仅拥有每个java ftp工具类都具备的批量管理功能,还具备很多你意想不到的地方,比如定时同步(上传和下载)、多任务同时进行、定时备份还能够自动更新。试问哪一个工具能做到这么全面,我反正是没见到过的。

    IIS7服务器管理工具是一款简单、便携、高效又直观的一款工具。它除了java ftp工具好用,其他的也是不逊色的。比如批量管理、同步操作、到期提醒、数据安全和定期执行。适用系统:Windows和liunx操作系统。支持Vnc和Ftp批量操作。可以说是你想到的没想到的,人家都给你安排的妥妥当当的了。所以说这款工具无论是哪一方面都让人非常满意了。

    下载地址:IIS7服务器管理工具
    在这里插入图片描述
    第二款:WinSCP
    WinSCP是一款支持SSH(Secure SHell)的SCP(Secure CoPy)文件传输软件。只要文件主机支持SSH协定,你就可以安心的下载、上传文件。他的操作界面是参考NC(Norton Commander)的双视窗排列方式,使用起来不会有太大的困难。在WinSCP中,一般的文件操作都没有问题,如:复制、移动、更名文件或文件夹等。
    在这里插入图片描述
    第三款:FileZilla 3.24
    FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能,具备极好的可控性及条理性。此为FileZilla最新官方版,请放心下载使用。FileZilla功能介绍:可以断点续传进行上传、下载(需要服务器支持);自定义命令;可进行站点管理。
    在这里插入图片描述
    第四款:FlashFXP 5.4
    FlashFXP是一个功能强大的 FXP/FTP 软件,融合了一些其他优秀 FTP 软件的优点,如像 CuteFTP 一样可以比较文件夹,支持彩色文字显示;像 BpFTP 支持多文件夹选择文件,能够缓存文件夹;像 LeapFTP 一样的外观界面,甚至设计思路也差相仿佛。支持文件夹(带子文件夹)的文件传送、删除;支持上传、下载及第三方文件续传。
    在这里插入图片描述
    第五款:Yummy FTP MAC版
    Yummy FTP支持修改服务器文件、设置本地或远程路径,上传下载文件都非常稳定,并且支持中文。完全兼容最新的 Leopard 操作系统。通过FTP,FTPS的(SSL / TLS的)和SFTP(SSH)连接。
    在这里插入图片描述
    第六款:LeapFtp
    这是一款轻巧、灵活、功能强大的FTP客户端软件,用户界面友好,传输速度稳定,能够连接绝大部分FTP站点(包括一些教育站点),自带了许多免费的FTP站点,资源丰富,支持断点续传和远程目录搜索,可以自定义命令、远程监控传输,对于FTP连接来说,也是一个非常不错的软件。
    在这里插入图片描述

    展开全文
  • 该系统是毕业设计时做的,由于时间紧迫,设计了服务器和客户端,实现了ftp的连接、上传、下载功能
  • 内容索引:VC/C++源码,网络相关,毕业设计,FTP客户端,上传 主要是练习Winlnet类的简单使用,使用C++实现,有设计文档和使用手册。这只是实现一个简单的基本的FTP上传功能,你不能拿它和现在流行的FTP软件来比。可以...
  • FTP客户端设计与实现

    千次阅读 2020-07-14 21:25:22
    FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件...

    互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大欢迎。

    FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。辅助管理模块实现一些相关功能如:读写配置INI文件。该FTP客户端软件达到了使用方便的目标,希望开发软件的经验能为使用.NET设计开发Windows应用程序FTP客户端软件的初学者提供一些帮助。

    第一步测试的是连接操作。连接一般有两种情况,一种是连接他是用户经常用要访问的FTP服务器,需要进行保存登录信息的。另一种是不常访问只是偶尔访问一下的只需要当次连接的是快速连接。连接前如下图4,输入IP地址为10.0.0.7(IP为本机地址);以及用户名密码为“anonymous”,连接成功后如图5。

    第二步测试在文件或文件夹操作,进行了新建文件夹,删除文件和文件夹。对文件夹的属性设置即修改是否读写,是否隐藏、是否存档。都能成功的进行操作。

    第三步测试文件上传和下载功能,以下载11.jpg为例下载前本地主机没有该文件如图6,当下载成功后主机这边显示有11.jpg文件出来在本地主机上如图7。

    此次FTP软件的设计与开发,从其功能上讲没有任何新的功能。实现了FTP的基本功能。能获取系统驱动器信息,能根据路径来显示你文件夹信息。能在软件中对文件进行添加和删除操作,及文件的上传和下载操作。能将登录名和密码保存到INI文件中去。能根据别名读取INI,新建连接能写入INI文件中去,外观基本上算是比较美观。完成了基本的FTP软件功能。FTP下载软件开发不管是在国内外都已经了十分成熟的技术,功能都比较齐全和不错。但是此次毕业设计的对我的最大收获是了解了.NET开发Windows应用程序开发,对新的开发语言C#有了了解。对FTP工作过程也有了一定的了解。也可以给一些初学FTP客户端软件开发一些帮助。

    链接:https://pan.baidu.com/s/1XwDiKnRjfl77YyG8pgR0iw
    提取码:orb0

     

    展开全文
  • 最近遇到一个问题就是:在服务器上部署到很多个FTP客户端定时程序,每个FTP客户端exe可执行程序功能都是类似的,都是将本地服务器中的某个文件夹下的符合文件规则(如*.json,*.xml)文件通过FTP上传到指定FTP服务器...

    项目背景

    FileZilla FTP Client这款软件只能手动上传文件到FTP,貌似我还没有找到定时扫描某个本地目录,然后执行定时上传的功能。最近遇到一个问题就是:在服务器上部署到很多个FTP客户端定时程序,每个FTP客户端exe可执行程序功能都是类似的,都是将本地服务器中的某个文件夹下的符合文件规则(如*.json,*.xml)文件通过FTP上传到指定FTP服务器上面的某个目录下。但是开的程序太多了,这样如果需要上传多个比如说雷达文件到多个FTP服务器上时,就会开启多个FTP推送客户端程序,这样服务器上面就产生多个exe可执行程序。
    如下图所示:
    服务器FTP推送客户端
    这样看起来很不好,而且很难区分对应的是哪个FTP程序,为了解决这个问题,最好将FTP推送客户端做成一点多发的形式。

    FTP File Upload Version1.0版

    关于只上传一个FTP服务器地址的MFC程序可以参考我之前写的博客:VC++ libcurl FTP上传客户端程序

    源代码我已经上传到Github和Gitee上面了,使用的C/C++库有libcurlboostpugixml

    FTPUpload-Github地址
    FTPUpload-Gitee地址
    FTPUpload是一款基于MFC的FTP推送客户端程序,使用了libcurl实现FTP推送,使用pugixml实现xml配置文件的读写,还使用了Boost库用于目录规则的转换(涉及到日期的)。程序执行流程图如下图所示:
    程序流程图

    程序如下图所示:
    FTP File Upload

    FTP File Upload Version2.0版

    在第一个版本的基础上做了另外一个版本,增加了Windows服务程序
    FTP File Upload Version2.0版

    FTP File Upload Version3.0版

    功能描述:

    • FTP多数据源多FTP目标源推送客户端的实现(支持一点多发):
    • 1.从数据库中获取任务信息,分别获取需要上传的本地文件源的信息(包括需要扫描的本地目录、目录规则、文件规则等)以及
    • FTP目的地信息(包括FTP的远程URL地址、FTP用户名、密码、远程的目录地址等)
    • 2、遍历任务列表
    • 3、针对每个任务,遍历文件源(可能有多个)
    • 4、对于每个文件源,遍历需要上传的FTP地址(可能有多个)
    • 5、针对每个文件源以及某个FTP目的信息的数据上传通道,创建一个FTP上传线程
    • 6、对于单个的FTP上传线程,执行FTP上传,并将上传成功或失败的写入到数据库中,以便多次重复传输(这里要注意剔除哪些在本地目录已经不存在但是在数据库中还有上传记录的文件上传记录信息)

    程序执行流程图

    程序流程图如下图所示:
    FTP多源多目的推送客户端-流程图

    数据库设计

    我使用的数据库是Sqlite3书库,选择它主要是因为它轻便而且无需提前安装。主要涉及到三张表:t_task任务表、t_source数据源表、t_dest即FTP目的地表,后续根据需要最好再加一张记录已经上传的文件列表信息,以防止重复上传相同的文件。这三张表的结构如下图示:

    • 表1 t_task
      task

    • 表2 t_source
      source

    • 表3 t_dest
      dest

    当然,可以选择Sqlite3数据库作为数据源,也可以使用xml配置文件作为数据源。

    为了方便我使用的是Sqlite3数据库,简单方便,使用了CodeProject上面一个关于Windows系统下SQLite的C++封装类CppSQLite - C++ Wrapper for SQLite,基于此类简单封装了一下基于Sqlite3的操作。核心代码如下:

    // FtpUploadMulti.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include "TaskDB.h"
    #include "FTPUpload.h"
    #include <thread>
    
    using namespace std;
    
    /**
     * 功能描述:
     * FTP多数据源多FTP目标源推送客户端的实现(支持一点多发):
     * 1.从数据库中获取任务信息,分别获取需要上传的本地文件源的信息(包括需要扫描的本地目录、目录规则、文件规则等)以及
     * FTP目的地信息(包括FTP的远程URL地址、FTP用户名、密码、远程的目录地址等)
     * 2、遍历任务列表
     * 3、针对每个任务,遍历文件源(可能有多个)
     * 4、对于每个文件源,遍历需要上传的FTP地址(可能有多个)
     * 5、针对每个文件源以及某个FTP目的信息的数据上传通道,创建一个FTP上传线程
     * 6、对于单个的FTP上传线程,执行FTP上传,并将上传成功或失败的写入到数据库中,以便多次重复传输(这里要注意剔除哪些在本地目录已经不存在但是在数据库中还有上传记录的文件上传记录信息)
     */
    // FTP上传线程函数
    void ftpUploadRun(FTPInfo item)
    {
    	FTPUpload ftpUpload;
    	// 设置源和FTP目的地信息
    	// 设置本地文件目录、扫描的目录规则、文件规则
    	ftpUpload.set_local_path(item.localPath.c_str(), item.folderDir.c_str(),
    		item.localFile.c_str());
    	// 设置FTP上传的地址、用户名和密码
    	ftpUpload.set_remote_path(item.remoteUrl.c_str(),
    		item.remoteUser.c_str(), item.remotePwd.c_str());
    	// 执行FTP上传
    	ftpUpload.upload();
    }
    
    int main()
    {
        // 读取任务列表
       
        // 遍历任务列表,获取文件源和FTP目的地
    
    	// 定时执行FTP上传任务
    	// 可以针对每个任务创建一个FTP上传线程,或者为每个通道(上传对象)创建一个FTP上传线程
    	signal_log lg;
    	TaskDB taskDB(lg);
    	TaskItemArray taskList;
    	//TaskItem item;
    	taskDB.init();
    	taskList = taskDB.getTaskList();
    	// 遍历任务列表
    	std::vector<std::thread> thrVec;
    
    	for (auto taskIter = taskList.begin(); taskIter != taskList.end(); taskIter++)
    	{
    		// 获取源sid
    		int sid = taskIter->sourceId;
    		// 获取FTP目的地did
    		int did = taskIter->destId;
    		// 根据sid获取源列表
    		SourceItemArray srcList;
    		srcList = taskDB.getSourceListById(sid);
    		printf("\n--------------- 源信息 ---------------\n");
    		for (auto srcIter = srcList.begin(); srcIter != srcList.end(); srcIter++)
    		{
    			printf("sid: %d, cid: %d, localPath: %s, folderRule: %s, fileRule: %s\n",
    				srcIter->sid, srcIter->cid, srcIter->localPath.c_str(), srcIter->folderRule.c_str(), srcIter->fileRule.c_str());
    		}
    		// 根据did获取FTP目的地信息列表
    		DestItemArray destList;
    		destList = taskDB.getDestListById(did);
    		printf("\n--------------- FTP目的地信息 ---------------\n");
    		for (auto destIter = destList.begin(); destIter != destList.end(); destIter++)
    		{
    			printf("did: %d, cid: %d, ftpUrl: %s, ftpFolder: %s, enableFolder: %s, ftpUser: %s, ftpPwd: %s\n",
    				destIter->did, destIter->cid, destIter->ftpUrl.c_str(), destIter->ftpFolder.c_str(),
    				destIter->enableFolder ? "true" : "false", destIter->ftpUser.c_str(), destIter->ftpPwd.c_str());
    		}
    
    		// 获取线程总数(即FTP数据上传通道的总数:源的数目 * 目的地的数据)
    		int threadNum = srcList.size() * destList.size();
    		printf("FTP数据上传通道总数(线程总数目): %d\n", threadNum);
    
    		for (auto srcIter = srcList.begin(); srcIter != srcList.end(); srcIter++)
    		{
    			SourceItem srcItem = *srcIter;
    			for (auto destIter = destList.begin(); destIter != destList.end(); destIter++)
    			{
    				DestItem destItem = *destIter;
    
    				FTPInfo item;
    				item.uploadRate = 5;
    				item.localPath = srcItem.localPath;
    				item.folderDir = srcItem.folderRule;
    				item.localFile = srcItem.fileRule;
    				item.remoteUrl = destItem.ftpUrl;
    				item.remoteUser = destItem.ftpUser;
    				item.remotePwd = destItem.ftpPwd;
    
    				// 创建一个FTP上传线程,并将其加入到线程列表中
    				thrVec.push_back(std::thread(ftpUploadRun, item));
    			}
    		}
    	}
    
    	/*while (true)
    	{
    		msleep(10);
    	}*/
    	getchar();
    	for (auto &thr : thrVec)
    	{
    		if (thr.joinable())
    		{
    			thr.join();
    		}
    	}
    
    	return 0;
    }
    

    Version3.0

    展开全文
  • 在WINDOWS环境下,使用VC++开发工具实现一个FTP客户端软件。在本次FTP的设计中主要使用WinInet API编程,无需考虑基本的通信协议和底层的数据传输工作,MFC提供的WinInet类是对WinInet API函数封装而来的,它为用户...

    1 FTP客户端设计思想
    在WINDOWS环境下,使用VC++开发工具实现一个FTP客户端软件。在本次FTP的设计中主要使用WinInet API编程,无需考虑基本的通信协议和底层的数据传输工作,MFC提供的WinInet类是对WinInet API函数封装而来的,它为用户提供了更加方便的编程接口。而在该设计中,使用的类包括 CInternetSession类、CFtpConnection类和CFtpFileFind类,其中,CInternetSession用于创建一个Internet会话; CftpConnection完成文件操作; CftpFileFind负责检索某一个目录下的所有文件和子目录。

    程序的功能:

    登陆到FTP服务器

    检索FTP服务器上的目录和文件

    根据FTP服务器给的权限,会相应地提供:文件的上传、下载、重命名、删除等功能

    2 Ftp客户端的各个子模块主要函数功能分析及流程图
    2.1 对程序的外观进行修改
    2.1.1 添加背景图
    为CMyFtpView类窗口,添加一个位图背景显示,首先为CmyFtpView添加WM_ERASEBKGND消息响应函数OnEraseBkgnd。该函数的前提是所需的位图已经导入资源中。

    2.1.2 添加时钟显示功能
    首先为CMainFrame类,设置一个定时器,然后为该类响应WM_TIMER消息,在OnTimer函数中实现功能。

    2.1.3 修改菜单栏、状态栏
    在资料对话框或源程序代码中采取针对性的操作,得以实现。

    2.2 连接到FTP服务器功能的实现
    2.2.1 生成连接对话框
    新建一个对话框(CConnectDlg)用来输入服务器的站点,用户名和密码信息,然后通过该对话框连接到服务器.主要的函数void CConnectDlg::OnConnect() 实

    展开全文
  • 在WINDOWS环境下,使用VC++开发工具实现一个FTP客户端软件。在本次FTP的设计中主要使用WinInet API编程,无需考虑基本的通信协议和底层的数据传输工作,MFC提供的WinInet类是对WinInet API函数封装而来的,它为用户...
  • 可能很多人都不太熟悉什么是ftp客户端工具,但是这个工具使用的人还是非常多的,比如那些从事网站管理的人员。他们的日常工作中接触的最多的工具可能就是ftp客户端工具。这款工具一般是英文版的偏多,那有没有我们...
  • 1.1 FTP工作原理 2 1.2 C/S原理 3 二、系统需求分析 3 2.1功能需求 3 2.3系统工作流程设计 4 三、系统详细设计 5 3.1主要模块设计: 5 3.2界面设计: 7 四、系统测试 10 五、系统使用说明 11 5.1程序说明 11 5.2操作...
  • 在WINDOWS环境下,使用VC++开发工具实现一个FTP客户端软件。在本次FTP的设计中主要使用WinInet API编程,无需考虑基本的通信协议和底层的数据传输工作,MFC提供的WinInet类是对WinInet API函数封装而来的,它为用户...
  • 在WINDOWS环境下,使用VC++开发工具实现一个FTP客户端软件。在本次FTP的设计中主要使用WinInet API编程,无需考虑基本的通信协议和底层的数据传输工作,MFC提供的WinInet类是对WinInet API函数封装而来的,它为用户...
  • ALDrive(FTP客户端)软件说明: 1、此程序源语言为朝鲜语,并且是初次汉化,难免有疏漏之处,所以发现汉化错误请谅解并指正。 2、为减少安装包体积,我们删除了示例站点,如要使用云服务,请自己添加服务器 ...
  • 本文详细介绍了FTP协议内容及FTP工作原理以及基于FTP协议通过C#实现FTP客户端和FTP服务端。 1 FTP协议 文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP使...
  • c#实现的一个简单FTP客户端

    千次阅读 2013-12-15 10:49:07
    前段时间完成的网络编程的大作业,附上源码,课程报告. ...了解通过FTP协议传送文件的方法,学会使用C#的Socket类实现一个简单FTP客户端.随着计算机网络的完善和成熟人们通过FTP下载资源也普遍增加
  • vs2010写的一个简单FTP客户端

    热门讨论 2010-11-06 17:57:56
    FtpC是用vs2010写的一个简单FTP客户端,说明CFtpConnection的基本用法,大家可参照它写出长期自动获取远程FTP服务器上数据的应用。如果你用vc6.0,只要把这个工程中的原理性代码复制过去就行了。 测试时FTP服务器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,189
精华内容 12,075
关键字:

简单ftp客户端软件设计