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

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

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

课程:《Python程序设计》
班级: 2543
姓名: 孙小涵
学号:20254311
实验教师:王志强
实验日期:2026年4月27日
必修/选修: 公选课

1.实验内容

1.1个人编程与队友互相通信

1.创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
2.要求发送方输入内容,加密后并传输;接收方收到密文并解密和显示。要求:发方和收方同时输出明文和明文。
3.程序代码托管到码云。
4.添加文件操作,有加分。(可选项)

1.2使用LLM生成一个带图形界面的程序

1.分析关键代码的功能和使用方法
2.分析生成程序的优点
3.给出运行过程和结果截图
4.程序代码托管到码云。

2. 实验过程及结果

2.1个人编程与队友互相通信

2.1.1创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序
服务端代码
屏幕截图 2026-05-05 094449
客户端代码
屏幕截图 2026-05-05 094458
2.1.2发送方输入内容,加密后并传输;接收方收到密文并解密和显示
本机为客户端,本机截图
屏幕截图 2026-05-05 094953
本机为客户端,服务端截图
微信图片_20260505104157_46281_47
本机为服务端,本机截图
屏幕截图 2026-05-05 101120
本机为服务端,客户端截图
微信图片_20260505104158_46282_47
2.1.3程序代码托管到码云
屏幕截图 2026-05-05 105244
2.1.4添加文件操作
屏幕截图 2026-05-05 105732

2.2使用LLM生成一个带图形界面的程序

2.2.1关键代码的功能和使用方法
关键代码的功能:

  1. 双向通信实现
    服务端:监听并接受一个客户端连接后,启动独立线程 _receive_loop 不间断调用 recv_encrypted_with_cipher 接收消息。同时主线程响应用户界面上的“发送”操作,通过已连接的 client_sock 调用 send_encrypted 发送消息。
    客户端:连接成功后同样启动接收线程,界面发送操作通过同一个 socket 发送消息。
    双方维持长连接,直到一方关闭窗口或网络断开。
  2. 加密传输与显示
    发送时先对明文 XOR 加密,然后发送 4字节长度前缀和密文字节。
    接收方首先读取长度,再循环读满指定长度的密文,解密后得到明文。
    显示要求:每次发送后,发送方的界面上会显示 [我发送] 标记的密文和明文;接收方收到后显示对方的密文和明文。完全满足“发方和收方同时输出明文和明文”。
  3. 图形界面
    两个角色窗口布局相同,分为“接收到的消息”(显示密文Hex和解密明文)和“发送消息”区域。
    按钮支持加密发送、清空发送框、清空接收区。
    底部状态栏实时显示连接状态。
    使用方法:
    1.运行程序,出现启动界面。
    2.点击 “启动服务端 (接收方)”,设置端口(如1111),服务端窗口打开,等待连接。
    3.再次运行程序,点击 “启动客户端 (发送方)”,输入相同端口和服务端IP。
    4.客户端连接成功后,两个窗口的状态栏都会显示已连接。
    5.任意窗口在“发送消息”区域输入文字,点击“加密并发送”,对方窗口的接收区会显示密文和明文,发送方自己的接收区也会以 [我发送] 记录自己发出的密文和明文。
    6.双方可以轮流或同时发送消息,实现双向对话。
    7.关闭任一窗口都会释放连接,另一方会收到断开提示。
    2.2.2分析生成程序的优点
    1.基于长连接+接收线程,双方均可随时主动发送。
    2.使用 XOR 加密,并完整展示加密前后的数据(十六进制密文)。
    3.通过长度前缀保证消息边界,消息大小无限制。
    4.网络异常、连接断开均有提示,资源正确关闭。
    2.2.3运行过程和结果截图
    程序截图
    屏幕截图 2026-05-05 110140
    屏幕截图 2026-05-05 110202
    屏幕截图 2026-05-05 110151
    屏幕截图 2026-05-05 110217
    屏幕截图 2026-05-05 110242
    屏幕截图 2026-05-05 110230
    屏幕截图 2026-05-05 110254
    屏幕截图 2026-05-05 110304
    运行过程
    屏幕截图 2026-05-05 101708
    微信图片_20260505104201_46284_47
    微信图片_20260505104202_46285_47
    2.2.4程序代码托管到码云
    屏幕截图 2026-05-05 105244

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

  • 问题1:输入exit后代码无法保留
  • 问题1解决方案:将print("服务端已关闭")改为input("服务端已关闭")
  • 问题2:deepseek生成代码无法链接客户端
  • 问题2解决方案:反复询问deepseek,直到代码可运行

仓库地址

  • [https://gitee.com/sun-xiaohan0702/python-enthusiast]
http://www.jsqmd.com/news/756886/

相关文章:

  • UE5材质参数动态修改保姆级教程:从蓝图到C++,告别材质实例修改无效
  • 郑州装饰公司 TOP10 排行榜(2026 最新权威测评) - 速递信息
  • 在 Taotoken 控制台管理 Ubuntu 服务器所用 API Key 的访问权限
  • 3分钟免费搞定APA第7版:Word用户的终极参考文献解决方案
  • 终极指南:如何用logitech-pubg罗技鼠标宏轻松实现绝地求生零后坐力射击
  • 八个经典的Java多线程编程题
  • 2026 郑州黄金回收优选:福正美线上线下双轨,全区域覆盖 - 福正美黄金回收
  • 从地图数据到应用:5分钟搞懂OSM中Node、Way、Relation的实战含义
  • 【花雕学编程】Arduino BLDC 之机器人扭矩矢量控制 + 动态分配 + 自适应同步
  • 通过审计日志功能回溯异常请求并定位是应用层还是模型层的问题
  • 保姆级教程:用ESP32-CAM和Python搭建一个简易的远程监控系统(含完整代码)
  • 别只盯着原理图:手把手教你用Ansys Q3D为真实PCB板提取寄生电感电阻
  • 别再只比精度了!Mask R-CNN、YOLOv8、RTMDet、DeepLab实例分割实战部署与速度对比(附代码)
  • 解放军信息工程大学考研辅导班机构推荐:排行榜单与哪家好评测 - michalwang
  • 如何5分钟配置Zotero AI插件:打造你的智能文献助手完整指南
  • 2026年天津滨海新区继承律所全面测评,家族继承业务选对律所少走弯路 - 速递信息
  • Palworld存档修复工具:轻松拯救损坏游戏数据的完整指南
  • 手把手教你用LVM RAID1做可临时拆分的‘活动硬盘’(数据安全新思路)
  • 众智商学院,一站式采购培训新选择(CPPM和SCMP报考优选机构) - 众智商学院课程中心
  • SecGPT:为LLM智能体构建执行隔离与权限控制的安全架构
  • 安装 Docker 后 CVM 网络中断报错 iptables 冲突怎么解决?
  • 为编程助手 Claude Code 配置 Taotoken 作为后端模型提供商
  • React Native构建ChatGPT克隆应用:技术栈解析与实战指南
  • 乌鲁木齐五大黄金回收机构真实测评(2026年5月实测) - damaigeo
  • 九蒸九晒熟地黄选购指南:如何挑选正宗高品质产品 - 速递信息
  • Hitboxer键盘映射工具:解决游戏输入冲突的终极方案
  • C++27 constexpr 函数性能跃迁:实测提升417%的5个零开销元编程模式(Clang 19/MSVC 19.40实证)
  • 大连交通大学考研辅导班机构推荐:排行榜单与哪家好评测 - michalwang
  • 2026 西宁黄金回收盘点,福正美口碑炸裂领跑全城 - 福正美黄金回收
  • 5分钟掌握MelonLoader:Unity游戏模组加载器的完整使用指南