JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载)

JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载) 标签:作品 小学生

JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载)

标签:作品小学生img++截图send文章检测打包

一 前言

  截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序。笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前,已经实现了 服务端/客户端 的上传、下载部分的功能逻辑。涉及到的知识点包括线程池技术、linux epoll并发技术、上传、下载等。JDFS的下载功能的逻辑部分与笔者前几篇关于JWebFileTrans(JDownload)比较类似。如果读者对socket网络下载不熟悉或者是只对下载功能感兴趣,请移步笔者的另外三篇博客,本文对下载功能不会详细描述,将主要集中于线程池、epoll和上传。那三篇博客的地址为:

  • JWebFileTrans: 一款可以从网络上下载文件的小程序(一) 链接地址请点我
  • JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二) 链接地址请点我
  • JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载 链接地址请点我

  JDFS的github地址请点击我

PS: 本篇博客是博客园用户“cs小学生”的原创作品,转载请注明原作者和原文链接,谢谢。  

  按照管理,下一节将先展示一下JDFS的上传下载功能。

二 JDFS上传、下载功能展示

  笔者是在两台虚拟的Ubuntu上做的测试,使用的是vmware player安装的ubuntu linux系统。在做实验之前我们需要首先确保两台虚拟Ubuntu之间的网络是通的,使用ping命令就可以检测之,笔者检测的截图如下:

  如上图所示,登录Ubuntu系统后现在shell里面执行ifconfig命令来查看本机的ip是多少,图中的蓝色线标识的便分别是两者的ip地址。

  如上图所示,两个虚拟ubuntu互相ping,结果显示网络是通的,那么这个是本实验的基础。

  如上图所示是实验之前server端、client端的目录情况,左边的是server端,目录里有一本《Unix环境高级编程》英文版,这个当时候客户端会请求下载这本电子书。右边的是client端的目录情况,其中有一本《算法导论》英文版,实验的时候,客户端会请求向服务端上传这本电子书。

  如上图所示,是客户端向服务端请求下载APUE-en.pdf的过程截图,左边是服务端,从shell的打印信息可以看出server在分段向client传送电子书,右边是客户端下载完毕后的截图。可以看出原本客户端目录中只有算法导论一本书,现在多了一本unix环境高级编程这本书。

  上图所示的是客户端请求向服务端上传算法导论电子书的截图。右边是客户端上传过程中打印的信息,可以看出是分片上传的,而左边是服务端接收过程中shell打印的信息。

  上图是客户端上传算法导论完毕后,在server端的ubuntu系统中打开算法导论的截图,可以看出,上传过程正确,电子书可以正常打开浏览。

三 基本思路

作者: 大白菜装机

为您推荐

返回顶部