20192307 2019-2020-2 《Python程序设计》实验三报告

20192307 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 1923班
姓名: 常万里
学号:20192307
实验教师:王志强
实验日期:2020年5月13日
必修/选修:公选课

1.实验内容

  1. 创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

2.实验要求

(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。

3. 实验过程及结果

3.1 客户端代码


循环发送字符串给服务器。关闭连接的保留字。

3.2 服务器端代码


循环接收客户端发送的数据,并写入文件中。关闭连接的保留字。

3.3 运行结果展示



在服务器端完成对密文的接收和密文的解密后还应回复客户端,以确认。

4. 实验过程中遇到的问题和解决过程

  • 问题1:格式化代码时遇到问题

  • 问题1解决方案:在《Python编程:从入门到实践》一书中找到了相关课程,重新学习后,对于格式化代码以及数组,元组,序列,集合进行了重新的认识。

  • 问题2:文件解码不成功

  • 问题2解决方案:在菜鸟教程上找到了正确的文件解码运用格式。对于传输问题,先把加密后的每一个字符用空格隔开,然后编码成二进制之后,用sendall全部送过去。解码问题,server端收到之后,先进行decode获得密文,再用split函数,以空格为间隔,将发过来的每个字符单独拆分成一个列表元素,然后server端的密钥进行一一解码。熟悉文件解码格式后重新编写代码。

  • 问题3:输入文件名时“文件”时出现FileNotFoundError

  • 问题3解决方案:文件名要加后缀,.tx

5. 感悟与思考

  • 在这次实验过程中,我遇到了许多问题,其中既有知识上的漏洞,也有不细心导致的马虎,这一切都补充,完善,丰富,扩展了我的python语言知识体系,尤其是对于SOCKET通信。在不断修复问题的过程中,我使用了很多方式去查询资料,例如:《Python编程:从入门到实践》,《[笨办法]学Python3(第三版)》,博客园平台,CDSN平台,码云平台,知乎app,等。在此程序的编写中,为我接下来学习python语言程序设计打下了坚实的基础,并在不断探索的过程中逐步提升了自己。

参考资料

  • 《Python编程:从入门到实践》
  • 《[笨办法]学Python3(第三版)》
  • 《Python基础教程(第3版)》
  • 《Python核心编程(第3版)》
posted @ 2020-05-22 19:39  20192307常万里  阅读(210)  评论(0编辑  收藏  举报