python day33 ,socketserver多线程传输,ftp作业
一、一个服务端连多个客户端的方法
1.服务端
import socketserver
class MyServer(socketserver.BaseRequestHandler):
def handle(self):
while True:
msg=self.request.recv(1024).decode('utf-8')
info=input('>>>')
self.request.send(1024)(info.encode('utf-8')) if __name__ == '__main__':
server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer)
server.serve_forever()
2.客户端1,没什么变化
import socket
sk=socket.socket()
sk.connect(("127.0.0.1",8080))
sk.send(('啊啊啊'.encode('utf-8')))
2.客户端2
import socket
sk=socket.socket()
sk.connect(("127.0.0.1",8080))
sk.send(('啊啊啊ooooo'.encode('utf-8')))
二、ftp作业
需求分析
1.多用户登陆(socketserver方法)
2.用户登陆,加密认证()
3.上传/下载文件,保证文件一致性()
4.不同用户家目录不同,且只能访问自己的家目录()
5.对用户进行磁盘配额、不同用户配额可不同()
6.用户登陆server后,可在家目录权限下切换子目录()
7.查看当前目录下文件,新建文件夹()
8.删除文件和空文件夹()
9.充分使用面向对象知识()
10.传输过程实现进度条()
11.支持断点续传()
python day33 ,socketserver多线程传输,ftp作业的更多相关文章
- python全栈开发day29-网络编程之socket常见方法,socketserver模块,ftp作业
一.昨日内容回顾 1.arp协议含义 2.子网,子网掩码 3.两台电脑在网络中怎么通信的? 4.tcp和udp socket编码 5.tcp和udp协议的区别 6.tcp三次握手和四次挥手,syn洪攻 ...
- python day 18: thinking in UML与FTP作业重写
目录 python day 18 1. thinking in UML读书小感 2. FTP作业重写 2.1 软件目录结构 2.2 FTPClient端脚本 2.3 FTPServer端脚本 pyth ...
- Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 & Socket编程基础)
FTP作业 本节内容: 面向对象高级语法部分 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 参考:http://www.cnblogs.com/wupeiqi/ ...
- python之ftp作业【还未完成】
作业要求 0.实现用户登陆 1.实现上传和下载 3.每个用户都有自己的家目录,且只可以访问自己的家目录 4.对用户进行磁盘配额,每个用户的空间不同,超过配额不允许下载和上传 5.允许用户在指定的家目录 ...
- python利用socketserver实现并发套接字功能
本文实现利用python的socketserver这个强大的模块实现套接字的并发 目录结构如下: 测试文件请放在server_file文件夹里面 server.py #!/usr/bin/env py ...
- python基础-12 多线程queue 线程交互event 线程锁 自定义线程池 进程 进程锁 进程池 进程交互数据资源共享
Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...
- python之路-----多线程与多进程
一.进程和线程的概念 1.进程(最小的资源单位): 进程:就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 程序:我们编写的程序用来描述进程要完成哪些功能以 ...
- Python多进程和多线程是鸡肋嘛?【转】
GIL是什么 Python的代码执行由 Python虚拟机(也叫解释器主循环,CPython版本)来控制,Python在设计之初就考虑到在解释器的主循环中,同时只有一个线程在运行.即每个CPU在任意时 ...
- python高级之多线程
python高级之多线程 本节内容 线程与进程定义及区别 python全局解释器锁 线程的定义及使用 互斥锁 线程死锁和递归锁 条件变量同步(Condition) 同步条件(Event) 信号量 队列 ...
随机推荐
- Notepad++编译和运行C语言 (GCC)
我们在学习C语言的时候,实际上只需要编译器和编辑器就能开搞了.(初学者过早接触IDE不利于理解程序构建的过程) 在看这篇文章的时候,假设你已经知道如何把GCC配置到环境变量,并且会在命令行/终端下使用 ...
- DNS推荐
在设置DNS地址之前我们需要知道DNS地址是什么? DNS地址是一个域名服务器地址,它可以把用户的网站地址解析成IP地址.如果这个服务器出现问题,可能就上不了网了咯. 查看DNS的方法如下: WIN+ ...
- Jenkins自动构建gitlab项目(jenkins+maven+giltlab+tomcat)
环境准备: System:CentOS 7.3 (最小化安装) JDK: 8u161 (1.8_161) tomcat: 8.5.29 Jenkins: Jenkins 2.107.1 Gitlab: ...
- 在Linux服务器非root权限下搭建TensorFlow框架(Anaconda)
今天终于动手折腾实验室的服务器啦!由于权限原因,只能在自己的路径下安装TensorFlow. 1. 下载安装Anaconda 官网下载地址:https://www.anaconda.com/downl ...
- 构建web应用之——文件上传
我们通过使用multipart请求数据接收和处理二进制信息(如文件).DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中的multi ...
- mybatis一简单one2one关系xml配置
user类 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC &qu ...
- 三、Linux的目录结构:
root管理员的home目录root 其他用户的home目录home目录中
- Mac上实现Python用HTMLTestRunner生成html测试报告
一.导入HTMLTestRunnerNew文件 首先,我们要知道如果要利用HTMLTestRunnerNew生成测试报告的话,就需要对其进行导入: HTMLTestRunnerNew下载地址:链接:h ...
- [Leetcode 452] 最少需要射出多少支箭Minimum Number of Arrows to Burst Balloons 贪心 重载
[题目] There are a number of spherical balloons spread in two-dimensional space. For each balloon, pro ...
- R语言RODBC数据库操作
最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R ...