20253431 2025-2026-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2534
姓名: 吕俊孜
学号:20253431
实验教师:王志强
实验日期:2026年4月27日
必修/选修: 公选课
1.实验内容
(一)实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(二)实验要求
注意事项:
每人必须做一次客户端和一次服务端,且要和队友(标注学号姓名)互相通信。
要求1:
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,加密后并传输;接收方收到密文并解密和显示。要求:发方和收方同时输出明文和明文。
(3)程序代码托管到码云。
(4)添加文件操作,有加分。(可选项)
要求2:使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图
(4)程序代码托管到码云。
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
2. 实验过程及结果
通过socket库实现通信,用手机热点提供局域网,加密选用凯撒密码,密钥为随机生成的1~30的数,并且带有检查密钥环节
成功与20253421林资恒同学通信
服务端代码

客户端代码

ai代码:
服务端代码
客户端代码

代码:
本程序基于 Python 实现,核心功能包括:通过 socket 建立服务端与客户端的 TCP 连接;服务端随机生成密钥并发送给客户端;通过字符移位实现消息的加密与解密;利用 tkinter 构建图形界面,支持聊天记录显示和消息发送;使用文件记录聊天日志。使用时,需先启动服务端,再由客户端连接服务端 IP 地址,即可进行加密通信
优点分析:
由大语言模型生成的程序功能完整,完全满足课程要求;模块化结构清晰,便于理解和修改;动态密钥机制提升了通信安全性,图形界面优化了用户体验;同时代码处理了多线程和异常捕获,稳定性强,大幅降低了开发和调试成本。
3. 实验过程中遇到的问题和解决过程
- 问题1:和同学通信连不上,我能连他但是他不能连我
- 问题1解决方案:关闭了对方的防火墙
其他(感悟、思考等)
感觉网络通信还是很有难度的,平日里似很简单的qq聊天背后也蕴含了很多复杂的代码
参考资料
-
《Java程序设计与数据结构教程(第二版)》
-
《Java程序设计与数据结构教程(第二版)》学习指导
