FTP 服务器
1.功能
1.分为服务器和客户端两部分,要求启动服务端可以有多个客户端进行连接操作
2.客户端可以选择文件库中的文件进行下载
3.客户端可以上传本地文件到文件库
2.技术分析
1.TCP+多线程
2.判断普通文件:os.path.isfile()
3.查看文件列表:os.listdir()
4.os 模块方法实例:
os.path.isfile(’/home/tarena/a.py’)#判断是否为普通文件,返回布尔值
os.listdir(’/home/tarena/’)#列表形式显示所有文件和文件夹,每个文件就是列表中的元素
3.结构设计
1.将功能说明中 2 3 4 三个功能封装在一个类中
4.实现步骤
1.搭建网络
2.封装类
3.功能实现和测试
FTP 服务器项目实现:
1.搭建网络模型
2.搭建类(程序架构)
1.确定客户端发送请求和服务端回复的种类
3.文件列表功能实现
1.客户端
1.向服务端发送 L 开头的请求
2.等待接收服务端的反馈,服务端把文件名发送给客户端并打印
当接收到 ## 的时候,结束
ftpserver模块:
from socket import *
import sys
import os
from threading import Thread
import time
address = ('0.0.0.0',8888)
filedir = '/home/tarena/project/download/'
def doRequest(client):
#创建对象,每个客户端都有一个单独的对象来处理功能
serverobj = ftpserver(client)
#接收客户端的请求
while True:
message = client.recv(1024).decode()
msglist = message.spl