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查看验证


②在pycharm中打开老师发在群里的代码


③当汤中凯20254127为客户端,王禹豪20254104为服务端(由于192.168.65.04或已被另一个班04号同学使用,故将IP地址改为192.168.65.40)

④当汤中凯20254127为服务端,王禹豪20254104为客户端(IP地址为192.168.65.11,第一次用192.168.65.27的IP地址运行时显示失败,改为192.168.65.11二次尝试成功连接)

备注:王禹豪20254104先与另一位同学进行第一次实验操作,然后再与我(汤中凯20254127)进行第二次实验操作,故王禹豪20254104的实验报告相关截图或采用第一次实验操作的结果,可能看不到第二次与我(汤中凯20254127)实验操作的截图结果,还请见谅,谢谢。
二、实验第二部分(使用LLM生成一个带图形界面的程序、分析优点、运行结果截图)
①使用豆包分别生成服务端和客户端的代码,并在pycharm中运行,根据实验第一部分的方法,同理进行此部分相关实验操作,结果截图如下:


②分析关键代码的功能和使用方法(此部分查阅了相关介绍)
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程序设计》
