python下载文件传到服务器_用python模拟服务器上传与下载文件-程序员宅基地

技术标签: python下载文件传到服务器  

纯属个人记录性质,大佬绕道!!!

参考了网上的代码

一.需求说明

这是网络课程的大作业,

FTP客户端:

FTP客户端要求具有图形化界面、上传、下载功能,鼓励实现断点续传功能。

对于这个题,其实我很懵。题目说的很不清楚。至少有以下疑问:

1 题目只说了客户端,那服务器端呢???没有服务器端,客户端连啥???

2 既然肯定要有服务器端,那服务器端可以自己模拟么,还是必须要组服务器?

本着省钱省事的原则,既然他没说,那就先自己模拟一下。

技术方案:

本着省事的原则,那就用python吧,嘻嘻。

服务器端利用socketserver 客户端直接使用socket。

二. 具体实现

服务器端要实现的功能:

1接受客户端上传的文件

2 提供基本的用户注册,登录功能,以区分不同的用户。

3 显示不同用户目录下的文件

4 为客户端提供下载

整个过程的流程:

启动服务器端-> 客户端连接服务器端(端口与服务器创建的端口一致)->服务器端向客户端发送'welcome' ->客户端接收到welcome并输出->客户端要求输入用户名密码->

1 首先服务器端。一个主要的类Myserver,继承自标准库socketserver.BaseRequestHandler

socketserver内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的scoket服务端。即,每个客户端请求连接到服务器时,socket服务端都会在服务器是创建一个“线程”或“进程”专门负责处理当前客户端的所有请求。ThradingTCPServer实现的socket服务器内部会为每个client创建一个“线程”,该线程用来与客户端进行交互。

使用ThradingTCPServer的三个步骤:创建一个继承 socketserver.BaseRequestHandler 的类

类中必须定义一个名为handle 的方法

启动 服务器端

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40003767/article/details/109858766

智能推荐

Android笔记-性能优化-崩溃报告-代码捕获保存至本地-程序员宅基地

文章浏览阅读145次。1、使用Thread.setDefaultUncaughtExceptionHandler()进行设置未捕获异常处理 Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler);2、重写Thread.UncaughtExceptionHandler中的public void uncaughtExce...

交叉编译: --host --build --target到底什么意思?-程序员宅基地

文章浏览阅读1.9k次。老是在做交叉编译,其实有时候对这三个东西的理解并不是那么清楚 从交叉工具链的情况来看,可以总结如下--build= 谁在这里编译? 意思说你目前的编译动作在哪里跑的 ? 如果是编译一个arm工具链,虽然工具链为为arm弄的,但是构建工具链的时候是在主机上进行的。所以 --build=i686-pc-linux-gnu--host= 目前编译出来的程序在哪里跑 ? 所

一个pyqt的gui_yolov3pytorch pyqt5-程序员宅基地

文章浏览阅读119次。给YOLOv3github上的pytorch项目写了个UI然后就拿来用了代码为from PyQt5.Qt import *import sysimport osclass MainWindow(QWidget): def __init__(self): super().__init__() self.save_bool=False self.show_bool=True self.camera_bool=T_yolov3pytorch pyqt5

Debian下编译Linux内核-程序员宅基地

文章浏览阅读91次。 一直以为Linux内核的编译是一件很复杂的事情,虽然有几次也实在是按捺不住冲动,要自己来编译一下试试,但是类似的几次尝试都是以失败而告终。在不久前,看到过一些关于Debian下编译内核的文章,说得很详细,而且似乎看起来也并不是很复杂的样子,于是决定自己编译一下内核,毕竟对于使用Linux的人来说没有自己编译过内核还真是一件叫人遗憾的事情。在这里记下的是自己编译2.6.19内核的方法,希望对于大家..._debian10编译linux内核

HGame 2023 Week2 部分Writeup-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏5次。第二周的解题过程中,遇到的不少有意思的题目,同时,也学习到了不少的知识,故书写此题解,作为记录。Week2 比赛地址:https://hgame.vidar.club/contest/3

Jupyter notebook无法执行代码,一直显示In[*]-程序员宅基地

文章浏览阅读5.7k次。windows安装tensorflow后可以用Jupyter notebook,后面可以启动但是不能用了。执行print(1)都无法执行,一直显示In[*]重新安装notebook解决pip install notebook

随便推点

jqGrid教程-程序员宅基地

文章浏览阅读2.5k次。转载于http://blog.csdn.net/hurryjiang/article/details/7551477目录(?)[+]JQGridJQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信。JQGrid Demo 是一个在线的演示项目。在这里,可以知道jqgrid可以做什么事情。下面是转自其他人b_jqgrid教程

2021年全球高温过滤介质收入大约2462.3百万美元,预计2028年达到4075.6百万美元_2028年空气过滤器和净水滤芯在国内和北美的市场份额-程序员宅基地

文章浏览阅读173次。据GIR (Global Info Research)调研,按收入计,2021年全球高温过滤介质收入大约2462.3百万美元,预计2028年达到4075.6百万美元,2022至2028期间,年复合增长率CAGR为 %。同时2020年全球高温过滤介质销量大约 ,预计2028年将达到 。2021年中国市场规模大约为 百万美元,在全球市场占比约为 %,同期北美和欧洲市场分别占比为 %和 %。未来几年,中国CAGR为 %,同期美国和欧洲CAGR分别为 %和 %,亚太地区将扮演更重要角色,除中美欧之外,日本、韩国、印_2028年空气过滤器和净水滤芯在国内和北美的市场份额

Cocos2d-x内存管理研究<一>(转载特兹卡特的百度空间)-程序员宅基地

文章浏览阅读1.1k次。半夜没事干,研究内核,作为我cocos2d-x的第一篇教程.cocos2dx是一个树形结构的引擎,具体结构我暂时不分析,这里只讲内存管理.网上的分析都是说个纯理论,我深入代码内核,给大家详细讲解.最开始我们寻找一下这棵树的最大的根节点CCZone.class CC_DLL CCZone{public: CCZone(CCObject *pObject = NULL);

自己动手写vector_vector怎么写-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏17次。最近学习c++的STL,把STL中的vector自己写了一下,写的过程中对c++进行学习。_vector怎么写

久石让-程序员宅基地

文章浏览阅读9.5k次。引自百度百科:http://baike.baidu.com/view/15151.htm 久石让目录 个人简介 音乐道路 久石让与宫崎峻 主要配乐作品 主要艺术作品 精选作品 [编辑本段]个人简介  名字:久石让(Joe Hisaishi)  本名:藤泽守  身份:日本知名作曲家、歌手、钢琴家(国立音乐大学作曲科毕业)  生日:1950年12月6日 

U盘BUG解决的必备知识,U盘有个文件突然删不掉了,用虚拟机也不行,又不想格式化U盘,最简单的解决办法,安利!!!卧槽,我亲测-程序员宅基地

文章浏览阅读338次。卧槽卧槽卧槽,我特么发现这骚操作首先右键你的U盘,接下来按我说的去做然后一定一定一定等它自己检查完,反正你点击叉也不掉,哈哈哈很快问题就解决了

推荐文章

热门文章

相关标签