作业要示:

开发简单的FTP:
1. 用户登陆
2. 上传/下载文件
3. 不同用户家目录不同
4. 查看当前目录下文件
5. 充分使用面向对象知识

 

 

 REDMAE

 1 用户登陆
 2 
 3 1、查看用户目录文件
 4 2、上传文件,
 5 3、下载方件
 6 4、退出
 7 
 8 程序结构:
 9 socket_server_client/#程序目录
10 |- - -clients/#client程序主目录
11 |      |- - -__init__.py
12 |      |- - -bin/#启用目录
13 |      |       |- - - __init__.py
14 |      |       |- - -socket_client.py#客户端启动
15 |      |
16 |      |- - -cfg/#配置文件目录
17 |      |       |- - - __init__.py
18 |      |       |- - -config.py#配置文件
19 |      |
20 |      |- - -core/#主要程序目录
21 |      |       |- - - __init__.py
22 |      |       |- - -client_func.py#主要函数
23 |      |
24 |      |- - -home/#客户端下载文件目录
25 |
26 |- - -servers/#server程序主目录
27 |      |- - -__init__.py
28 |      |- - -bin/#启用目录
29 |      |       |- - - __init__.py
30 |      |       |- - -registration.py#用户注册
31 |      |       |- - -socket_server.py#服务端启动
32 
33 |      |
34 |      |- - -cfg/#配置文件目录
35 |      |       |- - - __init__.py
36 |      |       |- - -config.py#配置文件
37 |      |
38 |      |- - -core/#主要程序目录
39 |      |       |- - - __init__.py
40 |      |       |- - -server_classc.py#主要函数
41 |      |
42 |      |- - -db/#用户上传文件主目录
43 |              |- - -user_file/#用户上传目录
44 |              |- - -user_names#注册用户文件
45 |

 

服务端

servers/

    bin/

registration.py

 1 #!usr/bin/env python
 2 #-*-coding:utf-8-*-
 3 # Author calmyan
 4 import socket,os,json,sys,pickle
 5 
 6 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量
 7 sys.path.append(BASE_DIR)#增加环境变量
 8 from cfg import config
 9 print('用户注册'.center(60,'='))
10 while True:
11     user_=input('请输入您要注册的用户名:').strip()
12     user_dir=os.path.join(config.USER_DIR,user_)#拼接用户目录路径
13     if os.path.isdir(user_dir):# 判断一个目录是否存在
14         print('用户已经存在请重输!')
15         continue
16     else:
17         pwd_=input('请输入密码:').strip()
18         pwd_two=input('请确认密码:').strip()
19         if pwd_==pwd_two:
20             try:
21                 os.mkdir(user_dir)#创建目录
22             except Exception as e:
23                 print(e)
24                 continue
25             finally:
26                 file_dir=user_dir+'\\user'#用户目录下的用户名文件
27             if  not os.path.isfile(config.USER_FILE):
28                 with open(config.USER_FILE,'w',encoding='utf-8') as f:
29                     f.write('{}')
30             with open(config.USER_FILE,'r+',encoding='utf-8') as f:
31                 data=eval(f.readline())
32                 data[user_]=pwd_
33                 f.seek(0)
34                 f.write(str(data))
35             print('用户[%s]注册成功!'%user_)
36             exit()
View Code

相关文章: