当前位置: 首页 > news >正文

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

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

课程:《Python程序设计》
班级:2541
姓名:汤中凯
学号:20254127
实验教师:王志强
实验日期:2026年4月28日
必修/选修:专选课

1.实验内容

创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
每人必须做一次客户端和一次服务端,且要和队友(标注学号姓名)互相通信。
要求1:
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,并传输;接收方收到信息并显示。
要求2:使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。

2. 实验过程及结果

一、实验第一部分(运行代码;双人轮流当服务端、客户端并发送信息)
①按照老师上课讲的方法,修改自己的IP地址,并在cmd中输入ipconfig查看验证
image
image
②在pycharm中打开老师发在群里的代码
image
image
③当汤中凯20254127为客户端,王禹豪20254104为服务端(由于192.168.65.04或已被另一个班04号同学使用,故将IP地址改为192.168.65.40)
5185dde0386982b5b773caf0a641d765
④当汤中凯20254127为服务端,王禹豪20254104为客户端(IP地址为192.168.65.11,第一次用192.168.65.27的IP地址运行时显示失败,改为192.168.65.11二次尝试成功连接)
a7ae8d6fcda118461c50110b5b1c912b
备注:王禹豪20254104先与另一位同学进行第一次实验操作,然后再与我(汤中凯20254127)进行第二次实验操作,故王禹豪20254104的实验报告相关截图或采用第一次实验操作的结果,可能看不到第二次与我(汤中凯20254127)实验操作的截图结果,还请见谅,谢谢。

二、实验第二部分(使用LLM生成一个带图形界面的程序、分析优点、运行结果截图)
①使用豆包分别生成服务端和客户端的代码,并在pycharm中运行,根据实验第一部分的方法,同理进行此部分相关实验操作,结果截图如下:
1b12c6aaca3d51888b551b69a43da410
33e65bc35ffdcca4d18866b555bdda2f
②分析关键代码的功能和使用方法(此部分查阅了相关介绍)
1. socket模块:用来创建网络连接,实现客户端和服务端的通信。
2. threading模块:开新线程接收消息,防止界面卡住。
3. tkinter:制作图形窗口、按钮、输入框等可视化界面。
4. ScrolledText:滚动文本框,显示聊天记录。
5. connect_server:读取IP和端口,连接服务端。
6. receive_msg:循环接收对方发来的信息并显示。
7. send_msg:获取输入内容,发送给对方。
8. bind/listen/accept:服务端绑定地址、监听、接受连接。
9. add_log:在界面上添加并显示聊天日志。
③分析生成程序的优点
1. 单独小方格界面,对话更加清晰直观
2. 运行更加稳定流畅,便于交流
3. 更加高大上

3. 实验过程中遇到的问题和解决过程

  • 问题1:刚开始进行客户端连接服务端时,总是会出现连接超时/拒绝连接(很崩溃)
  • 问题1解决方案:查看双方是否用的是同一个热点,然后咨询了旁边比较懂的同学
  • 问题2:实验第一部分改完IP地址然后尝试连接,结果运行栏下面显示红色错误
  • 问题2解决方案:问同学帮我们看了一下,然后自己误打误撞改了几次IP尾号,再尝试连接就OK啦(其实有点懵)

其他(感悟、思考等)

万事开头难!!!刚开始做第一部分的实验,我不断尝试不断失败~但是有伙伴帮我查看问题,给我纠错告诉我原理,感受到了“神队友”的力量!
然后就是我觉得我跟不上老师的节奏,可能是我自己的原因吧,我干事情总是慢一拍~比如说刚开始老师您教我们改ip地址,我跟着跟着就迷了(呜呜~)我下次尽量再听仔细些
最后,emm这次实验的操作和结果我总归也算是搞出来了了,曼波开心~

参考资料

  • 《Python程序设计》
http://www.jsqmd.com/news/721363/

相关文章:

  • 哪些降重软件可以同时降低查重率和AIGC疑似率?(附推荐一些可以用于论文降重的软件与高效论文降重方案:TOP10平台功能对比与选择建议)
  • ARM PMU性能监控单元与PMXEVTYPER寄存器详解
  • R语言大语言模型偏见分析实战(报错溯源黄金矩阵):从glm()崩溃到fairness::bias_test()稳定输出的完整闭环
  • STM32G474VCT6 高性能微控制器 M4内核+HRTIM+数学加速器——ST意法半导体 芯片IC
  • 传统与AI时代向量数据库对比
  • AgentRAG技术革新:JBoltAI引领AI问答新范式
  • PHP+AI代码审计实战手册(2024 OWASP Top 10适配版)
  • kettle插件-excel插件,kettle读取excel动态表头,kettle根据列名读取excel
  • PL111控制器:横竖时序参数完全解析
  • 2026年办公耗材行业专业AI搜索优化服务商选型及优质公司推荐 - 商业小白条
  • DL24MP-150W蓝牙电池测试仪功能解析与实测指南
  • PyOneDark主题终极指南:5分钟打造现代化Qt专业界面
  • Notepad++等高效文本编辑器技巧:管理Phi-3-vision模型项目配置文件
  • mysql锁竞争严重如何优化_MyISAM转InnoDB实战方案
  • Firefox 150.0.1 发布:修复多类使用问题,Relay 用户可创建 email masks 数量增至 50 个
  • 高速PCB堆叠设计:信号完整性与EMI优化实践
  • 《CentOS.5系统管理》14章--备份与恢复---Linux常用目录及备份
  • dateparse CLI工具实战:命令行快速测试日期格式
  • 手把手教你用DSPF28335的ePWM模块驱动无刷电机(附完整代码)
  • PCIe Gen3物理层避坑指南:如何正确处理同步头、有序集和数据流
  • 极值寻找控制(ESC)的新的最大功率点跟踪(MPPT)方法,并测试了该算法在找到光伏板的峰值功率点方面的能力(Simulink仿真实现)
  • AI降本工具哪个好?率零3.2元承诺型最低单价加1000字免费试入门! - 我要发一区
  • 高效论文降重方案:TOP10平台功能对比与选择建议!
  • STM32的USB CDC和硬件串口Serial,我该用哪个?Arduino代码移植避坑指南
  • Awesome Free Software与开源软件的区别:为什么自由软件更重要
  • 3分钟搞定Axure汉化:中文语言包完整安装指南
  • ARM调试寄存器DLR与DSPSR深度解析
  • Harness 平台实战: 用 DeerFlow 构建 一个企业自己的 Manus 平台( 企业长任务智能体平台)
  • 字节校招 C++ 考试题到底怎么考?别把它准备成“腾讯平替版”
  • 视频结构化技术:多模态融合与智能章节生成