zoukankan      html  css  js  c++  java
  • LiQ 即时通讯软件

    Project name: LiQ (LiQ 即时通讯软件)

    Creation date: 2020-2-26

    Update date: 2020-3-5 21:30

    Version: 1.0

    Complier: Qt-4.8.7 / Qt 5.9.9 (Clinet) and g++6.3.0 (Server)

    Language: c++11

    Author: I0gan (徐绿国)

    Plateform: Linux/Windows

    Project Indroduction:

    基于上一代Litalk做的第二个项目, 本来打算只是基于上一代修改一下UI界面,服务端框架还是用以前的, 做好客户端后,
    想想还是采用mysql自己的接口实现服务端, 服务端通讯全部采用Linux下的原生接口, 编译器为g++ 6.3.0, c++11开发.

    前一代Litalk 与Liq比较:

    Litalk:

    比较怪的UI界面, 整个通讯协议采用UDP进行传输, 发送包为明文字符串, 采用一些特殊符号进行分割字符串解包.很不安全, 而且效率低下, 使用Mysql来储存用户信息, 且储存用户的IP与端口, 每发一条消息就需要访问一次数据库, 效率大大折扣,不支持选着头像.
    服务端采用QT的接口, 依赖环境较高.

    LiQ:

    模仿QQ做的比较人性化的UI界面, 采用TCP进行安全加密登录, 登录验证成功后会从服务端获取一个checkCode, 用于安全修改信息的
    验证代码, 发送消息采用UDP发送, 使用链表储存用户的通讯地址,发送消息时候只需遍历链表即可获得用户的通讯地址, 这样效率就有所
    提高, 与上一代最大区别在于, 这个项目比较工程化, 采用二进制加密传输, 拥有数据结构,解包时更快, 采用mysql官方的c语言接口和原生Linux网络通讯接口函数, 效率上会有所提高, 运行环境不依赖于Qt, 使用多进程和多线程实现服务器高并发多处理,主要还是以多线程为主.

    目前功能: 模拟QQ界面, 能够注册用户, 用户能够修改固定的一些头像.且用户信息增多
    增强了服务端的稳固性, 安全性,高效性.

    让我来介绍一下它目前的功能:

    1. 注册登录帐号
    2. 开发中...

    使用:

    本项目基本很多宏定义全部在 liq.h(服务端) liqbase.h(客户端)
    里面有对应的很多信息和数据结构.修改相应的IP与端口即可.

    服务端:

    Linux平台. 可以从阿里云或者其他平台购买服务器,安装Mysql开发库: sudo apt install libmysql++-dev 还有g++6.0以上版本
    然后插入下面的表,使用make编译即可.

    客户端:

    Linux平台:

    我是采用QT5编译器开发的,想到以后在Windows上发布, 还是采用QT4的语法进行开发,希望能使用Qt5进行编译

    数据库表结构:

    create table users(uid int primary key auto_increment,account varchar(32),password varchar(256),nickname varchar(255),headImage varchar(255),email varchar(64), phoneNumber varchar(32), signature varchar(255),birth varchar(64), gender int,grade int,platform varchar(64),network int,lastlogin varchar(64));
    
    
    
    //nop number of person
    create table groups(gid int primary key auto_increment,account varchar(32),name varchar(255),headImage varchar(255),hacc varchar(32),files varchar(255),announcement varchar(255),nop int);
    
    
    create table user_friend(id int primary key auto_increment,uacc varchar(32),facc varchar(32),remark varchar(255), uid int, fid int);
    
    create table group_user(id int primary key auto_increment,gacc varchar(32),uacc varchar(32), gid int, uid int);
    
    create table pendtodo(id int(32) primary key auto_increment,cmd int,uacc varchar(32),facc varchar(32), gacc varchar(32), msg varchar(512), created_days int);
    
  • 相关阅读:
    HDU Railroad (记忆化)
    HDU 1227 Fast Food
    HDU 3008 Warcraft
    asp vbscript 检测客户端浏览器和操作系统(也可以易于升级到ASP.NET)
    Csharp 讀取大文本文件數據到DataTable中,大批量插入到數據庫中
    csharp 在万年历中计算显示农历日子出错
    csharp create ICS file extension
    CSS DIV Shadow
    DataTable search keyword
    User select fontface/color/size/backgroundColor设置 字体,颜色,大小,背景色兼容主流浏览器
  • 原文地址:https://www.cnblogs.com/lyxf/p/12423217.html
Copyright © 2011-2022 走看看