20252110史菲宇Python实验三
2025-2026-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级:2521
姓名:史菲宇
学号:20252110
实验教师:王志强
实验日期:2026年4月28日
课程性质:公选课
一、实验内容
本次实验围绕 Socket 网络编程技术 展开,分为两大核心任务,具体要求如下:
1. 基础 Socket 通信程序
1.用 Python 实现 TCP 协议的服务端与客户端程序,服务端需在指定端口监听客户端连接,支持多轮双向通信;
2.通信内容需实现加密传输:发送方输入明文,加密后传输;接收方收到密文后解密并显示,双方均需同时输出明文与密文;
3.与队友(学号姓名标注)互相通信,分别作为客户端与服务端完成一次完整交互;
2. 带图形界面的 Socket 聊天程序
1.使用 LLM 生成带 GUI 界面的 Socket 加密聊天程序;
2.分析关键代码的功能、实现逻辑与使用方法;
3.运行并验证程序功能,记录运行过程与结果;
4.完成代码托管,对比分析生成程序的优缺点。
二、实验过程及结果
(一)基础 Socket 加密通信程序实现
1. 代码实现
服务端代码
实现了 TCP 连接监听、接收加密数据、解密并输出明文 / 密文、发送加密消息的完整逻辑,加密方式采用最最简单的字符位移加密(+3/-3),确保数据传输的基础安全性。代码如下:

客户端代码
实现了连接服务端、发送加密数据、接收并解密服务端消息的逻辑,与服务端形成双向加密通信闭环~

2. 服务端运行截图:展示了服务端启动、接收客户端连接、双向通信时明文与密文的输出结果,包括队友发送的消息与自身回复的加密数据。
客户端运行截图:展示了客户端连接服务端、发送消息、接收并解密服务端回复的完整过程,验证了加密 / 解密逻辑的正确性。
3.队友通信验证
本次实验与队友完成了双向通信,分别作为客户端与服务端进行了多轮消息交互,双方程序均能正确实现加密传输、解密显示。
(二)好看的LLM 生成带 GUI 的加密聊天程序
1. 关键代码
LLM 生成的程序基于tkinter构建图形界面,使用 XOR 加密算法实现数据加密,并通过多线程处理 Socket 通信,避免界面卡顿,核心模块功能如下:
服务端代码:




客户端代码:




2. 程序运行结果
展示了程序连接服务端后,聊天记录区同时显示明文与密文的交互效果,界面状态从 “已断开” 更新为 “已连接”,消息发送与接收功能正常。
3. LLM 生成程序的优点分析
1.功能完整
自带图形界面,看上去非常高级好看,无需依赖命令行,交互体验更好;支持连接状态实时显示,用户感知更清晰。
2.代码健壮性
采用多线程处理通信,避免界面卡顿;包含 IP / 端口输入校验与连接异常捕获,错误提示更友好~
3.可维护性
采用面向对象设计,代码结构清晰,模块划分明确,真蚌
4. 问题 && 解决方案
问题:完全陌生的知识点,只能跟着老师敲代码,很多只懂一个大概的框架
解决:向豆包学习,整理出知识点,慢慢消化
三、上传的代码
以下是git地址:
第一个任务的server代码
第一个任务的client代码
第二个任务的server代码
第二个任务的client代码
本次实验完成了命令行版和图形界面版两套加密聊天程序,均基于Socket实现通信,并内置简单加密保证消息安全。
命令行版结构简单、逻辑清晰,能完成基本的消息收发与加解密功能,适合理解网络通信原理。但界面单一、依赖控制台操作,用户体验较为基础,仅满足功能验证需求。
图形界面版在命令行版基础上大幅优化,使用Tkinter实现可视化窗口,操作更直观便捷;加入多线程避免界面卡死,同时完善了状态提示、输入检查、错误弹窗等细节,程序稳定性和易用性显著提高,更接近实际可用的工具软件。
总体而言,命令行版适合学习核心原理,图形界面版更注重实用性与用户体验,完整体现了程序从基础实现到优化完善的开发过程。
四、实验感悟与思考
1. 网络编程的核心逻辑理解
本次实验,我对 Socket 通信的 “客户端 - 服务端” 模型有了认识:服务端需要绑定 IP 与端口、监听连接、处理请求等等;客户端则主动发起连接,双方通过约定的端口实现数据交互。
2. LLM 在编程中的辅助作用
LLM 生成的 GUI 程序快速实现了图形界面与多线程通信,没有大模型,我这学期都不可能完成第二个任务。对比自主编写的命令行程序,LLM 在界面开发、健壮性处理方面效率更高更美观。
五、参考资料
1. 书籍资料
- 《程序设计与数据结构教程(第二版)》
- 《程序设计与数据结构教程(第二版)》学习指导
2. 官方资料
- Python 官方socket库文档
- Python 官方tkinter库文档
- 简单加密算法原理与实现教程 [EB/OL]. [2026-05-14]. https://baike.baidu.com/item/加密算法
- TCP 网络通信流程与 Socket 编程详解 [EB/OL]. [2026-05-14]. https://baike.baidu.com/item/TCP协议
- Python 控制台程序与图形界面程序开发对比 [EB/OL]. [2026-05-14]. https://www.runoob.com/python3/python3-tutorial.html

浙公网安备 33010602011771号