pyqt5优秀项目python_【项目】PYQT5--Python/C++实现网络聊天室

本文介绍了使用PYQT5和C++实现的一个网络聊天室项目,包括客户端(C+++MySQL)和服务端(Python+PYQT5)。功能包括:聊天、数据库交互、用户注册、好友功能、文件传输、RSA+AES加密、远程协助、机器人聊天等。文章重点讨论了文件传输的逻辑、加密方法和PYQT5的多线程应用。
摘要由CSDN通过智能技术生成

一、项目简介

最近学习网络编程,用五天时间写了个简单的C/S聊天室:

Client端:C++ + MySQL(数据库)

Server端:Python + PYQT5(简单界面)

二、实现功能

1.客户端和服务端进行简单通信 √

2.服务器可单人、多人聊天,实现聊天室功能 √

3.服务端与数据库进行交互 √

4.用户注册功能 √

5.搜索、添加好友功能 √

6.能够简单的远程协助 √

7.通信内容加密(RSA+AES) √

8.文件传输 √

9.机器人聊天、在线翻译等 √

重点介绍一下加粗项功能~

三、设计分享

1.界面展示

chat-2.png

2.实现逻辑

C/S大家都很熟悉了,CSDN上也有很多代码,在此就不贴网络编程和服务器代码了~

简单介绍一下核心功能逻辑:

chat-5.png

② 文件传输: 一级文件头+二级文件头+数据

考虑到多文件同时传输,分两次发送文件属性信息可能会无法识别。

二级头: 发送人&接收人&文件名&文件大小&文件数据流

③ 加密功能:RSA 保证密钥传输的安全 AES 保证通信加密安全

坑:库难装!

主要流程:

安装最新版 Pip

Pip install RSA

Pip install Crypto

Pip install pycrypto

如果仍然无法识别Crypto,将此目录下crypto改成Crypto

C:\Users\superltx\AppData\Local\Programs\Python\Python35\Lib\site-packages\crypto\library

非对称加密:网站大多采用HTTPS (DH /RSA +CA+对称加密)

对称加密:AES 加密模式——CFB,此模式下明文长度可以不为16的整数倍

私聊加密通道:服务器相当于网络结点无密钥 数据内容点对点加密

chat-6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值