20254304 2025-2026-2 《Python程序设计》实验3报告
课程:《Python程序设计》
班级: 2543
姓名: 田奇
学号:20254304
实验教师:王志强
实验日期:2026年4月27日
必修/选修: 公选课
1.实验内容
1.1 内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
1.2 要求
注意事项:
每人必须做一次客户端和一次服务端,且要和队友(标注学号姓名)互相通信。
要求1:
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,加密后并传输;接收方收到密文并解密和显示。要求:发方和收方同时输出明文和明文。
(3)程序代码托管到码云。
(4)添加文件操作,有加分。(可选项)
要求2:使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图
(4)程序代码托管到码云。
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
2. 实验过程及结果
本次实验由20254304田奇和20244305苏楠共同完成
>>>前置工作
查询并修改IP为自己的学号相关


>>>要求1
2.1.1 课上编写实验代码并运行
20244305做服务端,我做客户端:
代码截图如下:

运行结果截图:

20254304(我自己)做服务端:
代码截图如下:

运行结果截图:

2.1.2 文件操作结果
截图如下:


2.1.3 托管到码云



- Gitee仓库 自写代码1
- Gitee仓库 自写代码2
>>>要求2:
2.2.1 课下使用LLM生成一个带图形界面的程序并运行(豆包)
20244305做服务端,我做客户端:


20254304(我自己)做服务端:

2.2.2 分析关键代码的功能和使用方法(AI生成)
def init(self, root):
# 创建接收区文本框
self.receive_text = tk.Text(root, height=10, width=70)
# 创建发送区输入框
self.send_entry = tk.Entry(root, width=60, font=("微软雅黑", 12))
# 创建发送按钮
self.send_btn = tk.Button(..., command=self.send_msg)
# 自动连接服务器
self.connect_server()
功能:构建包含三个核心组件的GUI界面 使用:运行后自动连接服务器,无需手动操作
def connect_server(self):
self.client_socket = socket.socket()
self.client_socket.connect((HOST, PORT)) # TCP连接
threading.Thread(target=self.receive_msg, daemon=True).start() # 启动接收线程
功能:连接指定服务器,启动独立线程持续监听消息 使用:自动执行,用户无感知
2.2.3 分析程序优点
(1)相比较自写代码,有清晰的界面设计
(2)AES算法,端到端加密传输,便于验证。
(3)相比自写程序,流畅交互,防GUI卡顿,可以提升双方交流体验。
2.2.4 托管到码云

- Gitee仓库 AI代码1
- Gitee仓库 AI代码2
>>>华为云上运行

3. 实验过程中遇到的问题和解决过程
问题1:刚开始LLM(AI)给我生成的代码还不能运行
- 解决方案:没有安装加密依赖库,在学长的帮助下,pycharm终端执行pip install pycryptodome,并补充代码文件
问题2:课上第一次实验时,改完手动IP浏览器用不了
- 解决方案:改回自动IP
问题3:改IP为学号相关,这一过程中出现过服务端和客户端还是连不上的情况
- 解决方案:检查所连网络与IP,还有是否在代码中更改相关内容
其他(感悟、思考等)
这次实验比前几次要难,我感受到要多学习补充一些知识,拓宽知识面
