20192109 2020-2021-2 《Python程序设计》实验三报告
20192109 2020-2021-2 《Python程序设计》实验三报告
###
课程:《Python程序设计》
班级: 1921
姓名: 季一泓
学号:20192109
实验教师:王志强
实验日期:2020年5月31日
必修/选修: 公选课
###
实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作;
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中;
(4)程序代码托管到码云。
实验过程及结果
2.1 创建服务器
先初始化服务器,再令服务器连接本地IP地址+端口,设置服务器可以监听多个客户请求(此处设为3),当然客户端得排队。
为了让服务器能一直工作,我令服务器循环工作,同时将接收到的密文通过base64.b64decode解密后保存至“server.txt”文件。
2.2 创建多个客户端
先读取文件信息,再通过base64.b64encode()对文件进行加密。
题目要求服务端在特定端口监听多个客户请求,因此此处设置两个客户端,尝试同时对服务器进行通信请求。
2.3 进行通信
通信过程如下图,服务端能同时监听多个客户请求,同时客户端满足打开文件加密传输的要求,服务器满足解密并写文件的要求,同时给以客户端回复
实验过程中遇到的问题和解决过程
- 问题1:读写文件报错argument must be str, not bytes
- 问题1解决方案:加入.encode("utf-8")和.decode("utf-8"),将字符串转为字节