20252321 2025-2026-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2523
姓名: 杨淇麟
学号:20252321
实验教师:XXX
实验日期:2026年4月27日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
要求1:
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,加密后并传输;接收方收到密文并解密和显示。要求:发方和收方同时输出明文和明文。
(3)程序代码托管到码云。
(4)添加文件操作,有加分。(可选项)
要求2:使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图
(4)程序代码托管到码云。
2. 实验过程及结果
基于 Python socket 库,采用 TCP 协议 实现服务端与客户端一对一通信,双方循环收发消息,输入 exit 断开连接。
服务端
1.导入 socket 库
2.创建 TCP 套接字对象
3.定义服务器 IP 和端口
4.绑定 IP 和端口
5.开启监听模式
6.接受客户端连接
7.循环收发消息
8.关闭资源

客户端
1.导入 socket 模块
2.创建客户端 TCP 套接字
3.定义服务端 IP 和端口
4.连接服务端
5.打印连接成功提示
6.开启无限循环
7.输入并发送消息
8.接收并打印服务端消息
9.关闭客户端连接

运行的时候服务端先运行,客户端后运行,即可在终端互相收发消息
本次使用大模型 LLM 快速生成基于 Python Tkinter 图形界面 + Socket 局域网聊天程序,包含 GUI 客户端、服务端,支持两台电脑同一局域网双向通信,完全满足课程要求。
tkinter
Python 内置 GUI 库,无需额外安装,用于创建窗口、聊天显示框、输入框、发送按钮,实现可视化图形界面。
socket
网络通信核心库,实现 TCP 协议服务端监听、客户端连接、数据收发,完成跨设备局域网传输。
threading多线程
单独开启子线程循环接收服务端消息,解决 GUI 界面阻塞问题,实现收发消息同时进行。
两台设备连接同一个 WiFi / 局域网;
查看服务端电脑 IPv4 地址,修改代码中 IP 与端口;
先运行服务端程序,开启端口监听;
另一台电脑运行 GUI 图形客户端,自动连接服务端;
在图形界面输入文字,点击发送,双向实时聊天;
关闭窗口即可断开连接,结束程序。
可视化图形界面
摒弃原生控制台黑框交互,采用窗口化 GUI 设计,操作直观简单,人机交互体验更好。
架构规范、稳定性强
采用多线程分离收发逻辑,避免界面卡顿、卡死,TCP 长连接通信,数据传输稳定不丢失。
适配局域网跨设备通信
支持同一局域网下两台不同电脑连接通信,突破本地单机运行限制,实用性强。
轻量化易运行
基于 Python 内置库开发,无需安装第三方依赖,代码简洁、注释清晰,易修改、易调试。
开发效率极高
通过 LLM 快速整合 GUI 界面 + 网络通信代码,大幅降低代码编写难度,缩短开发周期。
可拓展性强
可后期增加表情包、文件传输、用户昵称、聊天记录保存等功能,拓展空间大。


3. 实验过程中遇到的问题和解决过程
- 问题1:data 变量未定义
- 问题1解决方案:加上了定义
- 问题2:变量名 coon 和 conn 混用
- 问题2解决方案:修改了拼写错误
其他(感悟、思考等)
体会到LLM在辅助编程、快速生成可用代码方面的便利性,学会了对生成的代码进行分析、优化和调试,而不是直接依赖生成结果。
实验过程中遇到的各种报错,也锻炼了我排查问题、调试代码的能力,让我明白网络编程不仅需要正确的代码逻辑,还需要考虑环境配置、网络设置等多方面因素。这次实验为我后续学习更复杂的网络通信程序打下了基础,也让我对Python在网络编程领域的应用有了新的认识。
参考资料
-
《Java程序设计与数据结构教程(第二版)》
-
《Java程序设计与数据结构教程(第二版)》学习指导
-
...
