Computer Networks Midterm Project
A network application, LFTP, to support large file transfer between two computers in the Internet.
-
LFTPServer.py
LFTP服务端 -
LFTPClient.py
LFTP客户端
收发的文件放在下面的两个文件夹。运行时若以下两个文件夹不存在,则自动建立:
ServerFiles
服务端(要接收或发送)的文件存放在ServerFilesClinetFiles
客户端(要接收或发送)的文件存放在ClientFiles
注意要传输的文件命名不能有空格和#
使用python的struct模块打包数据,形成LFTP数据包发送
定义pkt_struct = struct.Struct('III1024s')
暂时定义的数据包格式(实现的过程中根据需要调整):
seq
int类型,序列号ack
int类型,确认号end_flag
int类型,文件结束标志,为1时表示文件发送完毕data
1024字节的byte类型
需要添加struct模块import struct
使用方法参照博客:https://www.cnblogs.com/leomei91/p/7602603.html
支持同时多客户端文件收发
服务端周知端口号为12000,收到客户端请求后,创建新的服务端线程(新的socket, 新的端口号)处理对应客户的请求
使用python3的threading
模块,方法参考:http://www.runoob.com/python3/python3-multithreading.html