Python实地项目-Python方案设计(期末课程、课程设计、毕业设计)-基于Python的实时通信和文件共享应用程序

      最后更新:2021-11-29 03:17:44 手机定位技术交流文章

      Python与TCP的协议允许私人聊天室。

      基于TCP通信协议的Python基于Python的实时通信和文件共享应用程序

      目录

      • Python与TCP的协议允许私人聊天室。
      • 基于TCP通信协议的Python基于Python的实时通信和文件共享应用程序
      • 1、项目概述:
      • 2、项目背景和意义
      • 3. 项目的组成及其基本理由
        • 三.1 总体项目结构
        • 3.2 项目基本算法的设计
          • 表三.2.2.1 用户信息
          • 三、二.2 文件存储服务台
      • 4、项目详细设计
        • 四.1 拟议的基于TCP的通信协议
        • 4.2 通信格式
          • 四.二.1 用户登记
          • 4.2.2 用户发送认证代码
        • 4.3 用户注册
          • 四、三.1号移动电话的认证
          • 四、三.2
          • 四、三.3 储存加密
        • 4.4 用户登录
        • 4.5 聊天界面
        • 4.6 文件共享
      • 5、界面效果图
      • 6、总结
      • 7、项目代码

      1、项目概述:

      在今天的大数据时代,技术正在迅速发展,人们的生活正在变得更容易和更快,我们都更喜欢简单和更快的事情,从老马的慢速度到现在的实时通讯,这样的话就不会有距离,而不只是速度。 为了响应工作生活的需求,提高工作效率,更有效地学习而不是距离,该项目使用Python作为发展语言,使用光 tkinter作为前GUI的结尾页,实时多线功能平行,人类互动界面促进人类美貌,基于Json TCP协议的数据,自定的反应传输协议,使用Mysql存储用户数据,以便将当前信息时代的特点与稳健的登录和登记功能以及在线聊天和文件共享相匹配。

      2、项目背景和意义

      拥有强大生命力的通信部门仍然处在一个动态发展时期,新技术在变化和迅速发展,然而,动态发展需要解决一些重要的关切问题,即当代通信的缺陷,最方便和最迅速的现代是实时聊天、有效和简单的通信以及工作学习的更多快速进步。

      3. 项目的组成及其基本理由

      三.1 总体项目结构

      (1).用户注册

      (2).用户登录

      (3) 进行实时对话。

      (4) 应将共有文件上载。

      (5) 共享文件

      3.2 项目基本算法的设计

      表三.2.2.1 用户信息

      UTF8 用主密钥 uid1 编码用户信息表格的 UTF8

      Uid1: 以1001开头的独特和非空用户代号。

      用户名: 用户名、 字符类型、 必须是独有的, 不能是空的 。

      密码:至少有一个字符不能为空的用户密码。

      电话:用户的移动电话号码以及字符类型,可以留空。

      电子邮件:无论字符类型如何,用户的收件箱可以是空的。

      三、二.2 文件存储服务台

      文件存储表的主密钥是 utf8 编码 。

      Uid:文件ID,自增长以来,从1开始。
      文件名: 文件名、 字符类型, 不能是空的 。
      自动: 上传文件的用户名和字符类型不能为空 。
      数据: 上传时间、 字符类型以及它不是空的这一事实 。
      Lx 文件类型和字符类型都可以是空的 。

      4、项目详细设计

      四.1 拟议的基于TCP的通信协议

      tcp特点
      (b) 连接方向:在发送数据之前,双方必须建立连接,双方必须指定适当的系统核资源用于连接,以管理连接状态和连接传输。双方之间的数据传输可以通过这一连接进行。一旦数据交换完成,双方必须切断连接,以便释放系统 r。
      可靠传输:TCP使用一种反应机制,即TCP发送的报告的每一部分都必须收到接收方的答复,以便认为TCP部分是成功的,在发送方发送了电文副本之后启动定时器,或者如果在预定时间内没有收到任何回复,则重新发送。 TCP给每套包裹一个序列号,以确保包件不会掉落,而序列号也保证收到包件的顺序给接收实体。 接收实体随后发送一份有关成功接收包件的相应确认书(ACK);如果发送实体在合理的超时(RTT)内没有收到确认书,则假定相应的数据包丢失,并将重新发送。
      发送者计算错误核查,然后由接收方确认,以查明发送者与接收端之间数据的任何变化;如果接收者识别检查中的错误,则直接销毁数据包。

      (1).以TCP通信为基础
      (2). 定长包头
      (3) 格式化json数据
      (4) 客户提出自己的要求,服务机构对要求作出回应。
      (5) 为了处理用户请求,使用了三个服务端。
      (6) 核查注册服务器、聊天发送和接收服务器、文件上传和下载服务器

      4.2 通信格式

      四.二.1 用户登记

      1. 客户端用户登录校验

        示例:
      1. 服务端发送:
        测试:0项成功核查,1项不成功核查
        p:0 用于用户认证

        示例

      4.2.2 用户发送认证代码

      1.用户端发送
      示例:

      2.服务端响应
      测试:0表示成功,3表示手机,1表示网络困难,2表示手机。
      示例:
      {
      op:1,
      test:0
      }

      4.3 用户注册

      四、三.1号移动电话的认证

      用户注册模块使用第三方图书馆,该图书馆呼叫移动电话号码,发送认证代码的API界面;一个基于网络的第三方平台,用于核实手机号码;以及一个使用Apache2许可证的HTTP图书馆。 使用 Python 写入。 它比 urlib2 模块简单。 请求支持 HTTP 连接维护与连接集合、 使用 cookie 维护会话、 上传文件、 对内容编码的自动响应、 URL 和 POST 数据自动编码的国际化。 基于 内建 Python 模块的高封装度使 Python 的网络请求人手化, 并且能够方便地完成浏览器使用 Exquest. Modern, intern, internal, 友好的操作。 请求将自动实现永久连接的保存。

      四、三.2

      此外,每个注册栏目都使用普通表达式。

      为确保数据库中记录的数据真实无误,用户密码由至少6位数组成,最多16个位数,用户名是非空白字符,最少有1个,最多有6个限制。

      四、三.3 储存加密

      存储的密码是用 md5 加密的,以确保用户的关键隐私,并且不披露。 Md5 完整姓名: 信息开发算法 5 翻译为: 信息汇总算法 5

      加密和抽象是全部加密通信;有解密程序可获取原始数据;摘要摘录不完整;无法从汇总数据中获得原始数据。

      MD5 长度 : 128 比特, 32 比特, 16 比特, md5 长度是多少? md5 的长度默认设置为 128 比特, 也就是说, 这个短语是敌对的 。 二进制已被修改为 16 位数的系统, 4 位数的每个系统代表 16 位数的系统, 因此 128/4 = 32 被替换为 16 位数的系统 。
      在这里插入图片描述

      16 md5 在互联网上的意义是什么? 互联网上有几个博客对 md5 32-bit 和 16 bit 加密之间的区别有不同之处。 检查管理员创建的32 bit 和 16 bit md5 数字 。
      查询结果:

      md5(admin,32) =21232f297a57a5a743894a0e4a801fc3
      md5(admin,16) = 7a57a5a743894a0e

      事实上,16位数的长度取自32位数 md5。 为了消除后8位数,原打算从前8位中去除32位md5。

      MD5的作用

      一致性测试1的典型例子。

      两个数字签名,或者最突出的例子。只是Md5 检测到一个指纹,一个指纹显示了其独特性。

      3 安全准入证书,这是普通系统结构的一个缺陷。

      当用户登记时,密码以md5加密,并保存在数据库中,防止能访问数据库的人恶意运作。
      md5是唯一的吗?

      md5 是否是数据库的主密钥? 这里有一个问题。 是否只有 md5 可用? 答案是它不是唯一的 。
      这是与一个 md5 值相对应的一个原始数据; 但是, 一个 md5 值可能对应一个以上的原始数据。 md5 是不可逆的。 没有可比的技术, 原始数据是通过倒转创建的 md5. 获得的。 但是, 如果用暴力来打破它, 它就是一种别的东西。 为了避免破碎和更严格的开发, 密码数据被输入数据库, 使用密码+用户名和 md5 加密方案 。

      4.4 用户登录

      用户登录模块使用 PIL 第三方图书馆, 其中包括动态页面和特殊效果 。 Python 图像图书馆( Python 图像图书馆) 是 Python 的第三方图像处理图书馆, 但是由于其功能巨大且用户众多, 它几乎已经进入 Python 的官方图像处理图书馆。 它的官方主页是: PIL 。 PIL 长期以来一直支持 Python 2. 它是一个 x 版本, 然后有一个 Python3 枕头图书馆叫做枕头。 friendly fork for PIL该方法与PIL相似,但与Python 3一起使用。
      使用线索创建颜色动态改变特殊效果,单击标题按钮。

      将各种颜色代码放入列表中,然后随机更改它们。

      4.5 聊天界面

      这一作用主要通过利用若干线索和上述基于TCP的通信协议进行实时交谈来实现,对传输的每条电文进行用户识别,以便严格处理,整个接口简单而有效。

      4.6 文件共享

      这个整体部分取决于 tcp, 整个问题源于 tcp 的特征。 TCP: 传输控制协议, 它是一个连接的、可靠的以字节为基础的传输层协议。 TCP 通信包含三个步骤: 连接建立、 数据传输和连接终止。 根据 TCP 通信模式, 在数据传输之前, 必须在通信开始之前建立适当的链接, 类似于通过电话发送数据的方式 。
      Tcp 的主要缺点是传输数据太慢了, 但是这与这个功能模块无关。 根本问题是, 数据流传输会导致一个粘贴的软件包, 导致文件传输不当。 在这种情况下, 我将使用一个长包头来先交付文件大小, 然后用一个长的接收器来计算基于文件大小的接收器数量, 然后再用 md5 来修正文件 。

      5、界面效果图

      登录界面、 背景和颜色都是动态的,
      在这里插入图片描述

      注册界面
      在这里插入图片描述
      聊天界面
      在这里插入图片描述

      文件上传界面
      在这里插入图片描述

      6、总结

      将项目能力应用于许多知识,例如 Mysql 访问数据、基于 tcp 的 tkinterGUI 接口设计、 PIL 图像处理、多跟踪多程序、 http 的请求等等,可称为低匹配版本 和定制实用性, 使用“eest”虽然有益,但已成为这个信息时代的隐私问题,因此关键的工作和讨论使用家用。

      7、项目代码

      密切注意公众的号码,并对必要的用语作出反应,这些用语载于以下参考手册中:
      手册链接地址:
      https://blog.csdn.net/meenr/article/details/121452685

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13884.html

          热门文章

          文章分类