20223405 《Python程序设计》 实验三报告
# 学号 2022-2023-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2234
姓名: 李硕
学号:20223405
实验教师:王志强
实验日期:2023年4月13日
必修/选修: 公选课
## 1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
## 2. 实验过程及结果
此处与20223416吕逸锋进行通信
①实验相关代码(此处已托管到gitee,所以直接把两步合并)
(1)加密算法代码

(2)服务端代码

(3)客户端代码

(4)实验结果:
我作为服务器:

我作为客户端:

## 3. 实验过程中遇到的问题和解决过程
- 问题1:在运行加密算法时显示“NoPydes”相关内容并报错
- 问题1解决方案:在仔细查看错误后发现是未安装PyDes模块导致加密算法无法运行,安装PyDes模块后问题解决。
- 问题2:在运行解密算法时出现一系列错误,如hasnolen,cantendode等类似的错误
- 问题2解决方案:经询问老师后发现是自身对编码,加密和解码的本质理解不清,导致三者之间的顺序产生问题,使最终传输出去的内容并非预期的加密内容,也就导致了无法用解码和解密算法解密。同时也经过自查发现对变量进行解密和解码操作不改变变量自身的值。所以我们通过单独设立变量,调换编码、解码和解密的顺序,成功使程序运行。
- 问题3:在互相连接时显示“积极拒绝”,且关闭防火墙等常规方法尝试均无用
- 问题3解决方案:经询问老师和上网查找发现,是我们对bind方法的理解不清晰。bind方法的目的是将socket与指定IP的指定端口进行连接以进行监听,如果bind的是127.0.0.1或者是自己的IP,则只会监听到本机的通信。因此在服务端应把bind的IP改为公共IP(此处为0.0.0.0)。更改bind的IP后成功建立通信。
- 问题4:无法发送中文
- 问题4解决方案:加密算法不支持对unicode的解码,所以我们采用了encode,加密再encode的三重方法,解决了这一问题。
## 其他(感悟、思考等)
本次实验是对高级开发和网络通信的一次简单学习,通过学习文件和socket等方法构建了一个两台主机间的通信系统,并实现了简单的通信。虽然我们在一系列的出现问题和解决问题的过程中勉强完成了此次实验,但是我们所做的也不过是对代码的复刻和重复性的尝试,而实际上我们对于这些代码的本质和实际发挥的作用还是存在不明确和混淆(尤其是bind方法)。要想实现熟练的操作和编写,仅凭在课上学习的知识还远远不够,我们需要进行更深层次的研究和学习才能够对这些知识有更加清晰的认知,才能够更好地去利用它们。
相关推荐
Microsoft.WinDbg-1.2610.1001.0-x64
Microsoft.WinDbg-1.2610.1001.0-x64
Claude 代码超强能力:核心技能库
Superpowers 是一套面向你的编码智能体的完整软件开发方法论,由一组可组合技能和若干初始指令构建而成,用以确保智能体真正使用这些技能。
PDF发票内容提取排版并结构化导出xlsx/cvs嵌入式ptyhon
【本地发票提取工具】 核心优势:不依赖传统粗糙 OCR,基于文字排版结构进行精准提取。仅“税网”下载及税网邮件发送的原版 PDF 发票(开票软件发送的不太支持)能实现开票明细级的秒级本地提取,告别只能提抬头、总额的尴尬。 可免费试用 3 天! 【用前须知】 去微软官网下载VC_redist.x64.exe运行修复运行库(必要的前置操作),之后再解压本工具rar,运行本exe即可。 VC_redist.x64.exe官网永久下载地址 https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist 【安全须知】 个人开发暂未做代码签名,杀软可能会有误报拦截。遇到拦截请在杀软中添加信任/白名单即可。 VirusTotal扫描结果 2/61,主流杀软均通过,个别引擎因无签名误报。官网 virustotal.com 点击页面中间显眼的 “Choose file”(选择文件)按钮上传扫描。
Flask校园二手交易平台课设
这是一份基于 Flask + SQLite 的校园二手交易平台课程设计完整资料,包含实验报告(Markdown、HTML、PDF 三种格式)、全部 Python 源码、8 个 Jinja2 页面模板、5 张运行截图、答辩 PPT。学生注册账号后发布闲置物品,同校同学按分类翻、按关键词搜,看中了在详情页留言咨询,管理员能下架违规商品。不接支付不做物流,买卖双方线下交易,平台只负责信息展示和沟通,一个学期课设能做完。 系统功能:用户注册登录登出,session 维持登录态;发布商品填标题、描述、价格、选六类分类,图片可选上传不强制;首页卡片网格展示在售商品,顶部搜索框按标题描述模糊匹配,下方分类按钮筛选,搜索和筛选可组合;商品详情页展示大图、完整描述、卖家昵称,登录用户能留言咨询;我的发布页能看自己挂过的所有商品并删除;管理员后台能看全部商品,一键下架违规品或恢复在售。 几个值得参考的实现点:密码用 Werkzeug 哈希加盐存储;登录接口不区分"用户不存在"和"密码错误",防枚举用户名;图片上传限制后缀和 2MB,文件名随机串重命名,防覆盖和传脚本;分类和搜索筛选组合用动态拼 SQL;首次启动自动建表写管理员账号;Bootstrap 5 栅格,手机浏览器也能看。 适合正在做 Web 课程设计、Python 后端入门的学生,以及想学习"Flask 蓝图 + SQLite + 登录鉴权 + 文件上传"完整小项目的自学者。拿到手后 cd src,pip install -r requirements.txt,python app.py,浏览器开 http://127.0.0.1:5000 即可,管理员账号 admin/admin123,普通用户自行注册。
《低秩加稀疏模型的高效动态平行MRI重建.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。


