20184202路荣辉 实验三《Python程序设计》实验报告
20184202路荣辉《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 1842
姓名: 路荣辉
学号:20184202
实验教师:王志强
实验日期:2020年5月22日
必修/选修: 公选课
一、实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
二、实验要求
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
三、实验步骤:
1.创建连接
客户端与服务器端通过socket技术创造连接代码截图如下:
客户端:
服务器端:
2.传输接收、加密解密文件
客户端选择要加密传输的文件,然后传输文件名,随后打开文件,读出内容,并对内容加密,最后传输密文。代码截图如下:
服务器端接受文件名,接受文件数据,解密后保存。代码截图如下:
3.返回消息
服务器端在解码看到明文后返回回复消息,代码截图
客户端接受回复消息,返回消息,代码如下:
4.代码运行结果:
客户端:
服务器端:
四、试验中遇到的问题与解决方法
- 文件无法打开,原因是自己在pycharm里已经打开了文件,所以在运行代码的时候无法执行文件打开的代码。解决方法:关闭文件。
- 服务器端无法返回消息,原因是客户端没有接受代码,解决方案为客户端写上接收代码
五、试验感悟
这次实验我做的是真的快要崩溃了,在一开始做试验的时候设想的功能是很丰富的,但到真正编写的时候出现了无数的bug,只能一遍一遍的改。许多bug由于一开始没找到原因,所有在后续的编写中反复的出现。最后实在做不出来,就简化了许多,只留下了基本操作。但通过这几天的实验,我逐渐掌握了socket技术的原理以及编写,同时对文件的操作也更为熟练。一开始对文件加密传输没有什么概念,现在知道了原理后还是很有成就感的。