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

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

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

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

1.实验内容

创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
要求1:
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求发送方输入内容,并传输;接收方收到信息并显示。

要求2:使用LLM生成一个带图形界面的程序
(1)分析关键代码的功能和使用方法
(2)分析生成程序的优点
(3)给出运行过程和结果截图

2. 实验过程及结果

(1)创建服务端和客户端并用Python语言编程实现通信演示程序
① 在相关网络设置中找到并修改自身网址为带有自己学号的网址,并找到队友(20254214乔若曦);
image

② 将老师所给的编码导入pycharm中,将自己的IP地址输入,同时等待队友客户端输入相同的IP地址,链接相同的网络;
image

③ 双方连接好后,先有服务端启动编程,在接收到等待客户端链接的指示后,由客户端的同学进行操作运行编程,即可显示连接成功,客户端的同学可以成功发送消息给服务端,服务端的同学也可以顺利发送消息给客户端,实现交流;
屏幕截图 2026-04-28 201911

④ 再和队友互换身份后,由队友担任服务器的角色,自己担任客户端的角色,输入队友的IP地址并链接其网络,再次进行运行,同样成功进行交流。
屏幕截图 2026-04-28 202505

(2)用LLM生成带有图形界面的代码的程序并准确运行
① 运用豆包大模型生成相应的编程
image

② 关键代码的功能和使用方法
a.初始化
准备好客户端和服务端的插座,同时启动图形界面;
def init(self):
self.server_socket = None
self.client_socket = None
self.setup_ui()
** b.输入所需输入的IP地址和端口,可在第一行的括号内输入自己或者对方的IP地址,在第二行括号内输入端口;**
self.ip_entry.insert(0, "192.168.43.14")
self.port_entry.insert(0, "8888")
c.让服务端启动,同时等待客户端的链接;
def start_server():
server_socket.bind((ip, port))
server_socket.listen(1)
d.用于接收消息,通过该行编程,可以实现将对方的消息接收至聊天框内;
def recv_loop():
while True:
data = client_socket.recv(1024).decode()
e.用于发送我方的消息,在图形界面中的聊天框内可以输入自己的消息;
def send_msg():
client_socket.send(msg.encode())
**f.使客户端连接上服务端,要保证两方所输入的IP地址保持一致,同时要确保连接的是同一个网络。 **
def connect_server():
client_socket.connect((ip, port))

③ 生成程序的优点
a.使用了线程编码threading.Thread(target=self.receive_msg, daemon=True).start() ,使得程序可以在进行其他操作的同时接收消息,避免网络阻塞造成界面卡顿、无响应而无法继续执行;
b.设置了图形界面,使得交流更加便捷,所呈现的信息也更加清晰,配备了更加完备的聊天框,可以更加方便查看客户端和服务端所输入的信息;
c.配有表情包,语言也更加柔和,使得整体交流更具有人性化,不像自己编写的程序,语言较为生硬,同时,聊天日志设置了自动滚动,收到消息后自动滚动到最新一行,不用手动下拉查看历史聊天;
d.设置了相应的启动和停止按钮,使得操作更加清楚便捷,不像我们自己编写的代码按回撤开始运行且只有终止运行功能。

④ 运行过程和结果截图
首先由我方担任服务端,在pycharm中输入LLM生成的服务端编程,点击运行按键后,弹出图形界面,在图形界面中点击启动,等待客户端运行,在客户端点击运行后,显示链接成功 ,再由客户端输入相关消息,确认服务端收到消息后给予回应,完成双向交流。

屏幕截图 2026-04-30 161740
再由我方担任客户端的角色,在服务端确认已启动后,开始运行由LLM生成的客户端的编程,在弹出的图形界面中点击来链接,显示链接成功后,向服务端发送发消息,再收到服务端的回信后确认运行成功。

屏幕截图 2026-04-30 164134

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

  • 问题1:在两台设备链接时显示地址不存在和拒绝接入。
  • 问题1解决方案:向老师寻求帮助,在编辑IP地址处除了输入所需设置的地址外,输入默认网关、首选DNS服务器(114.114.114.114)和备选DNS服务器(8.8.8.8)成功解决第一个问题,同时也在老师的帮助下知道客户端被服务端拒绝接入是因为服务端的电脑防火墙没有关闭,在相关设置中将对应的防火墙全部关闭,即可链接成功。
  • 问题2:在使用LLM所撰写的编程时发现始终无法显示客户端的图形界面。
  • 问题2解决方案:发现是在pycharm中未关闭服务段的代码,故pycharm始终运行的时服务端的代码,在上方运行/调试配置处点击当前文件,转化为打开的客户端编程,再点击运行即可以显示客户端的图形界面。

其他(感悟、思考等)

通过本次的实验,我感受到像QQ,微信等通信软件的强大,能够流畅准确运行那么多的客户端和服务端,其内部肯定存在一个强大且完备的编程体系;这也让我认识到,我们现在所编写和接触的编程,属于基础且易上手的部分,但也是这些基础的代码支撑起了后续多元化的,越来越人性化,越来越优秀的编程发展。同时,在一次次不断尝试,从向老师寻求帮助到后来用LLM生成代码时自行与同伴排除编程问题所在,我感受到了编程中一点一点查找问题所在,再到最终在自己的努力下使得相关编程能够准确运行的快乐和成就感,看着通过自己不断修改到最后成功弹出正常交谈的图形界面,真得打心底想为自己和队友欢呼o( ̄▽ ̄)o

参考资料

  • 《Python完全自学教程》
http://www.jsqmd.com/news/728066/

相关文章:

  • flowable 整合达梦V8
  • 2026年转行/秋招必看:AI产品经理高薪赛道深度解析与面试攻略!
  • 3分钟掌握ROFL-Player:英雄联盟回放分析终极指南
  • 一键部署OpenClaw:全自动脚本集成服务器安全加固实践
  • 爆款解压《打螺丝消除》微信小游戏( 可直接上线)
  • 印刷后期加工厂家推荐榜 - 奔跑123
  • 3个实用技巧彻底解决抖音视频批量下载难题
  • 2026年文创业行业AI搜索生成式引擎优化GEO服务商选型推荐分析报告 - 商业小白条
  • 模型广场如何帮助开发者根据任务与预算选择合适的AI模型
  • AWDP赛题复盘:除了上WAF黑名单,PHP代码层防SQL注入还有哪些更优解?
  • 别再手动传固件了!用麒麟OS+TFTP服务5分钟搞定网络设备批量升级
  • 双井京东 MALL 美陈设计,为何能实现高转化场景引流?肆墨设计
  • 计算机科学教材编写框架与数据存储技术详解
  • 罗兰艺境GEO出席WAIC全球创新项目路演,以“1+11”全栈技术助力AI产业全链创新 - 罗兰艺境GEO
  • ComfyUI MediaPipe 终极填坑:解决 incompatible function arguments 报错,基于代理模式的猴子补丁升级版
  • 河北刀片刺丝厂家排行:基于实测数据的客观盘点 - 奔跑123
  • 3分钟快速上手:终极AI视频去水印工具完整指南
  • 使用Taotoken后如何通过用量看板清晰掌握各模型调用成本
  • Windows 7终极兼容方案:iperf3网络性能测试工具完整指南
  • 构建私有AI智能体指挥中心:本地大模型与可观测性治理实践
  • Codeforces Round 1095 (Div. 2) 补题
  • Laravel + AI不是插件堆砌!揭秘头部SaaS团队正在封测的3层AI抽象架构(含GitHub私仓链接)
  • 抖音批量下载器:免费开源工具助你一键保存心仪视频
  • 8X 杀入8 系豪华车,极氪爆款矩阵是怎样炼成的?
  • EMC 三要素:干扰源-耦合路径-敏感设备,所有问题的根源
  • 工业容器集群部署生死线:Docker 27必须禁用的5个默认参数,否则3个月内必发生产事故
  • 2026年|2026届毕业生必备:论文AI检测率过高?3大避坑指南+1个工具解决! - 降AI实验室
  • 别再手动调格式了!Origin 2023 主题和模板功能,让你的科研绘图效率翻倍
  • 河北刀片刺丝厂家实力排行:资质与交付能力对比 - 奔跑123
  • 新概念英语第二册55_Not a gold mine