一、项目简介
最近学习网络编程,用五天时间写了个简单的C/S聊天室:
Client端:C++ + MySQL(数据库)
Server端:Python + PYQT5(简单界面)
二、实现功能
1.客户端和服务端进行简单通信 √
2.服务器可单人、多人聊天,实现聊天室功能 √
3.服务端与数据库进行交互 √
4.用户注册功能 √
5.搜索、添加好友功能 √
6.能够简单的远程协助 √
7.通信内容加密(RSA+AES) √
8.文件传输 √
9.机器人聊天、在线翻译等 √
重点介绍一下加粗项功能~
三、设计分享
1.界面展示
2.实现逻辑
C/S大家都很熟悉了,CSDN上也有很多代码,在此就不贴网络编程和服务器代码了~
简单介绍一下核心功能逻辑:
② 文件传输: 一级文件头+二级文件头+数据
考虑到多文件同时传输,分两次发送文件属性信息可能会无法识别。
二级头: 发送人&接收人&文件名&文件大小&文件数据流
③ 加密功能: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的整数倍
私聊加密通道:服务器相当于网络结点无密钥 数据内容点对点加密