20254114 实验三《Python程序设计》实验报告
学号 2025-2026-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2541
姓名: 刘小萌
学号:20254114
实验教师:王志强
实验日期:2026年4月30日
必修/选修:专选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
要求1:
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,并传输;接收方收到信息并显示。
作为服务端:

作为客户端:

要求2:使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
服务端代码分析
import socket 用于实现 TCP 网络通信,完成服务端的监听、连接与数据传输。
import threading 用于开启多线程,避免图形界面在接收消息时卡死。
import tkinter as tk 用于创建图形界面,实现可视化操作。
from tkinter import ttk, scrolledtext 用于添加按钮、输入框、滚动日志等界面组件。
def init(self, root) 初始化程序,定义服务端套接字、客户端套接字、运行状态三个关键变量,用于管理连接状态。
def start_server(self) 是服务端核心方法,从界面获取端口号并启动服务,开始监听客户端连接。
def receive_msg(self) 用于接收客户端消息,通过循环接收数据并解码显示,异常时提示客户端断开。
def send_msg(self) 用于向客户端发送消息,获取输入内容并编码发送,同时在界面显示发送记录。
客户端代码分析
def init(self, root) 初始化 TCP、UDP 套接字和连接状态,支持两种协议通信。
def connect_server(self) 是客户端核心方法,获取 IP 和端口并与服务端建立连接。
def tcp_recv_thread 和 def udp_recv_thread 分别实现 TCP 和 UDP 的消息接收,通过线程实时显示接收内容。
(2)分析生成程序的优点
结构清晰,功能模块划分明确,便于理解与维护;
采用多线程处理消息接收,图形界面不会卡顿,运行流畅;
具备完善的异常处理,能应对连接断开、发送失败等情况,程序更稳定;
图形界面操作简单直观,无需命令行即可完成通信;
客户端同时支持 TCP、UDP 协议,功能全面,适合实验学习;
代码规范、扩展性强,可轻松添加加密、文件传输等新功能。
(3)给出运行过程和结果截图
作为客户端:

作为服务端:

3. 实验过程中遇到的问题和解决过程
- 问题1:最开始链接的时候无法连接到服务器
![f04019f96a042ac2e977c7d4b86babfd]()
- 问题1解决方案:把源代码中的IP地址改正
其他(感悟、思考等)
通过本次实验,我有不少简单的感悟。借助 LLM 生成带图形界面的 Socket 通信程序,节省了很多编写基础代码的时间,让我能更专注于理解服务端和客户端的通信逻辑。在分析代码的过程中,我清楚了多线程和异常处理的重要性,也明白了 TCP、UDP 通信的基本流程,比单纯看理论更易理解。同时我也发现,LLM 生成的代码虽好用,但不能完全依赖,还需要结合实验需求微调,才能满足和队友互相通信的要求。这次实验也让我意识到,编程不仅要实现功能,还要注重代码的规范性和稳定性,后续我也会多积累实操经验,提升自己的调试和思考能力。
参考资料
- [《从零开始学Python》]

浙公网安备 33010602011771号