三亩地.
  • 首页
  • 学习日记
  • 项目实战
  • 学习方法
  • 代码技巧
  • 避坑指南
  • 调试经验
  • 实战教程
  • 编程思维
  • 资讯中心
  • 关于我们

资讯详情

深入了解每一个知识点

  • 首页
  • /
  • 资讯中心
  • /
  • 文章详情

20242210实验三《Python程序设计》实验报告

📅 2026/7/9 2:28:44 👁️ 阅读次数 📝 编程学习
20242210实验三《Python程序设计》实验报告

20242210实验三《Python程序设计》实验报告

20242210 2025-2026-2 《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 2422
姓名: 陈俊祎
学号:20242210
实验教师:王志强
实验日期:2026年4月27日
必修/选修: 公选课

1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

  1. 实验过程及结果
    下面是cli程序的运行截图
    image
    image

以下是我与搭档20242218段锦坤同学进行连接的图形化界面
分别有服务端和客户端的实验截图
屏幕截图 2026-05-08 224259
屏幕截图 2026-05-08 224110
屏幕截图 2026-05-08 224104

  1. 实验过程中遇到的问题和解决过程
    问题1:客户端无法连接服务端,长时间无响应或抛出“Connection refused”
    解决方案:检查服务端是否已正常启动并监听正确IP和端口。若在同一台机器测试,服务端绑定127.0.0.1,客户端连接相同地址;若在不同机器,需绑定0.0.0.0并关闭防火墙或添加入站规则。同时确认网络可达(使用ping测试)。

问题2:图形化界面运行时,网络收发操作导致界面“卡死”
解决方案:将Socket的收发操作放入单独的后台线程(threading.Thread),避免阻塞主事件循环。同时利用队列(queue.Queue)在线程和主界面之间安全传递数据。使用PyQt或Tkinter的after()方法定时检查队列也能达到同样效果。

其他(感悟、思考等)

通过本次实验,我加深了对网络编程中C/S架构的理解。Socket编程看似只是调用几个API,但实际需要考虑很多边界条件和异常处理——例如连接中断、数据不完整、并发资源竞争等。与搭档段锦坤同学合作时,我们分别实现了命令行版本和图形界面版本,并通过联调发现并解决了不同Python版本下字节串编码/解码不一致的问题,体会到了团队协作和规范接口(统一使用UTF-8编码)的重要性。
另外,对比TCP和UDP的特性:TCP面向连接、可靠但开销大;UDP无连接、高效但可能丢包。本实验主要使用TCP实现,后续可以尝试基于UDP实现简单的广播或多播功能,进一步对比两种协议的实际表现。
同时,图形界面的加入使程序更具可用性,但也带来了异步编程的复杂度。今后在设计类似应用时,会优先考虑使用asyncio库来简化异步网络和界面之间的协调。

参考资料

《Python程序设计》

编程学习 技术分享 实战经验

相关新闻

ARM开发板触摸屏移植全记录:Qt应用依赖的tslib-1.4交叉编译与配置详解

2026/7/9 11:53:50

2026年最新安徽实景婚纱摄影TOP6权威评测考核报告 - 安徽工业

2026/7/7 13:29:45

世界杯足球直播APP技术维度实测与适配分析 - 奔跑123

2026/7/8 3:19:38

最新新闻

冰酒的起源:天赐的冬日馈赠 - GrowUME

2026/7/9 23:08:22

MySQL数据分析入门:从零掌握SQL查询与实战案例

2026/7/9 23:08:22

2026北京知识产权律师推荐哪家好?基于判例回访与最新排名的深度解析2026北京知识产权律师推荐哪家好?基于判例回访与最新排名的深度解析 - GrowUME

2026/7/9 23:08:22

时变滤波经验模态分解 TVF-EMD:Matlab 代码实现与 2 个关键参数调优指南

2026/7/9 23:08:22

2026年 氯丁橡胶/SBR氯丁橡胶/弹性氯丁橡胶/防水氯丁橡胶生产厂家分析:专业性能与创新工艺深度解析 - 企业推荐官【官方】

2026/7/9 23:08:22

.NET Framework 4.5 在 Win10/Win11 中的真实部署与故障排查

2026/7/9 23:08:22

日新闻

SQL 查询语句的标准逻辑执行顺序(即语义处理顺序),它与实际书写顺序不同,但决定了数据库如何解析和执行查询

2026/7/9 0:01:50

危险潜伏!AI编程工具Claude Code部分版本被曝存在安全后门隐患

2026/7/9 0:02:17

3D医学影像分割数据集 M3D-Seg 解析:117类全身器官标注与多模态数据应用

2026/7/9 0:02:17

周新闻

基于YOLOv12的番茄成熟度智能检测系统开发

2026/7/9 20:00:05

Claude API国内使用合规指南与国产替代方案

2026/7/9 2:23:34

终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼

2026/7/9 20:22:43

月新闻

[C++]内存管理:串顺序存储的内存回收

2026/7/8 22:35:51

足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建

2026/7/9 5:44:31

抖音内容监控助手:告别手动刷新,让优质内容主动找你

2026/7/9 5:18:29

分类目录

  • 学习日记
  • 项目实战
  • 学习方法
  • 代码技巧
  • 避坑指南
  • 调试经验

热门标签

JavaScript Python Java 前端开发 后端开发 算法 数据结构 项目实战

关于三亩地

三亩地是一个专注于编程学习的平台,以真实学习日记为载体,分享编程学习经验、项目实操技巧和高效学习方法。

快速链接

学习日记

项目实战

学习方法

资讯中心

联系方式

邮箱:contact@mfbz.cn

微信:sanmudi_code

QQ 群:123456789

© 2026 三亩地 编程学习日记 版权所有 | mfbz.cn