20252133 实验三《Python程序设计》实验报告

20252133 2025-2026-2 《Python程序设计》实验3报告

课程:《Python程序设计》
班级: 2521
姓名:黄文皓
学号:20252133
实验教师:王志强
实验日期:2026年5月1日
必修/选修: 公选课
通信队友:学号20252211 姓名陈鸿超

1.实验内容

  1. 创建TCP Socket服务端与客户端,服务端多线程监听多个客户端请求;
  2. 实现消息凯撒加密传输,收发双方同时显示明文和密文;
  3. 添加文件操作,保存通信日志;
  4. 使用Tkinter开发图形界面通信程序;
  5. 在Windows物理机和华为ECS(OpenEuler)上部署运行,与队友双向通信。

2. 实验过程及结果

2.1 开发流程

实现了 TCP 连接监听、接收加密数据、解密并输出明文 / 密文、发送加密消息的完整逻辑,确保数据传输的基础安全性。代码如下

服务端代码,输入要发送的消息,加密后在终端显示明文和密文,然后发送给服务端。:

屏幕截图 2026-05-12 185152

屏幕截图 2026-05-12 185201

客户端代码,实现互相发送信息并进行加密和解密,使用Base64的加密方法:

屏幕截图 2026-05-12 185301

实验结果:

屏幕截图 2026-05-12 185034
对方显示:

微信图片_20260512185053_271_54

LLM 生成的程序基于tkinter构建图形界面,

  1. 编写通用工具函数:实现凯撒加密/解密、通信日志文件保存;
  2. 编写多线程TCP服务端,支持并发处理多个客户端;
  3. 编写TCP客户端,实现消息输入、加密发送、接收解密;
  4. 基于Tkinter开发图形界面,可视化收发消息;
  5. 本地测试 → 服务器部署 → 与队友双向通信。
    核心模块功能如下:
    屏幕截图 2026-05-11 204031

屏幕截图 2026-05-11 204111
屏幕截图 2026-05-11 204204

2.2 实验结果

  1. 服务端成功监听端口,支持多个客户端同时连接;
  2. 消息加密传输正常,接收方可正确解密,双方均输出明文+密文;
  3. 通信日志自动保存到txt文件;
  4. GUI程序运行流畅,操作简单;
  5. 与队友(XXX-XXX)跨设备通信成功。

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

  • 问题1:客户端连接服务端超时,无法通信

  • 问题1解决方案:Windows防火墙未放行端口,ECS安全组未开放8888端口,放行后解决。

  • 问题2:服务端只能连接一个客户端

  • 问题2解决方案:使用threading多线程,为每个客户端创建独立处理线程。

  • 问题3:中文传输乱码

  • 问题3解决方案:编码统一使用utf-8,recv/send时指定编码格式。

  • 问题4:OpenEuler运行提示python3未找到

  • 问题4解决方案:使用python3命令运行,安装python3-pip。

其他(感悟、思考等)

  1. 掌握了Python Socket TCP通信原理,理解了服务端多线程的作用;
  2. 学会了简单加密算法的应用,了解了网络通信数据安全的重要性;
  3. 熟悉了图形界面Tkinter的开发流程;
  4. 体会到Linux服务器部署与本地开发的差异,提升了实战能力。

参考资料

  • Python官方文档:socket编程
  • Python多线程
  • Tkinter图形界面开发教程# 你的学号 2025-2026-2 《Python程序设计》实验3报告
posted @ 2026-05-11 22:12  hochest  阅读(20)  评论(3)    收藏  举报