2024-2025-2 20244330《Python程序设计》实验三报告

2024-2025-2 20244330《Python程序设计》实验三报告

课程:《Python程序设计》

班级: 2443

姓名: 李馨逸

学号:20244330

实验教师:王志强老师

实验日期:2025年4月16日

必修/选修: 公选课

一.实验内容

通过Python实现一个基于Socket套接字(TCP)的通信程序,包括服务端和客户端。

服务端负责在特定端口监听并接受客户端的连接请求,而客户端则用于发起连接并执行文件发送或消息发送操作。

实验要求实现文件的基本操作,如打开、读写等,并确保文件内容在传输过程中进行加密处理,接收方收到密文后需解密并保存到文件中。

二.实验设计

  1. 通信协议选择:采用TCP协议,确保数据传输的可靠性和顺序性。

  2. 端口选择:服务端监听本地端口50400。

  3. 文件操作:客户端读取文件内容,服务端接收内容并保存到指定目录。

  4. 加密解密:采用Base64编码进行简单的加密解密处理。

  5. 交互设计:客户端通过命令行输入操作指令(发送文件或消息),服务端接收指令并作出相应处理。

三. 实验过程

  1. 服务端启动:服务端程序启动后,在指定端口监听客户端连接。

  2. 客户端连接:客户端程序运行后,连接到服务端。

  3. 发送文件:客户端选择发送文件操作,输入文件名,读取文件内容并加密后发送给服务端。服务端接收加密内容,解密后保存到文件中,并返回确认信息。

  4. 发送消息:客户端选择发送消息操作,输入消息内容,加密后发送给服务端。服务端接收并解密消息,显示并返回确认信息。

  5. 重复操作或结束:客户端根据用户输入决定是否继续执行操作或结束程序。

四.实验运行

  1. 启动服务端:运行Server2025.py程序,服务端开始监听。

  2. 启动客户端:运行Client2025.py程序,客户端连接到服务端。

  3. 执行操作:根据客户端提示,输入操作类型(发送文件或消息),执行相应操作。

  4. 查看结果:服务端显示接收到的数据或保存的文件,客户端显示服务端的确认信息。

五.结果分析

文件传输/消息传输:客户端成功发送文件,服务端正确接收并保存文件/显示消息,返回确认信息,表明文件传输功能正常。

加密解密:通过Base64编码实现了简单的加密解密处理,保证了数据在传输过程中的安全性。

错误处理:程序中加入了异常处理机制,能够捕获并显示错误信息,提高了程序的稳定性。

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

  • 问题1:文件无法正常传输

  • 问题1解决方案:经过排查,发现问题出在客户端传文件操作进行了多次,导致无法正常发送过去。对此,我进行了相应的代码调整,问题得以解决。

  • 问题2:服务端接收消息有时会显示乱码错误

  • 问题2解决方案:经过仔细分析,我发现是因为没有对加密后的消息进行解码的缘故。在添加了base64的解码后,接受信息功能得以正常实现。

代码如下

服务端代码
客户端代码

实验截图如下


参考资料

posted @ 2025-04-22 21:07  兰风涯  阅读(39)  评论(0)    收藏  举报