• 大小: 20KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签:

资源简介

QT和linux简易远程聊天源代码

资源截图

代码片段和文件信息

/*===============================================================
 *   Copyright (C) 2017 All rights reserved.
 *   
 *   文件名称:lib.c
 *   创 建 者:陈迪林
 *   创建日期:2017年08月02日
 *   描    述:
 *
 *   更新日志:
 *
 ================================================================*/
#include 
#include 
#include 
#include 
#include           /* See NOTES */
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “lib.h“

#include 

int user_num=0;
pthread_mutex_t flag;
USER_INFO user_info[MAXUSER];

/* sqlite3 */
int usrinfo_callback(void *para int f_num char **f_value char **f_name)
{
    int i;

    char *pPara = (char *)para;

    if(0 == strncmp(f_value[0]pPara20) && 0 == strncmp(f_value[1] pPara+2020))
    {
        pPara[40] = 1;
    }
    return 0;
}

int exists_callback(void *para int f_num char **f_value char **f_name)
{
    int i;

    char *pPara = (char *)para;

    if(0 == strncmp(f_value[0]pPara20))
    {
        pPara[20] = 1;
    }

    return 0;
}


int validate_userexists(const char *name)
{
    sqlite3 *db;
    
    if(sqlite3_open(“user_data.db“&db) != SQLITE_OK)
    {
        printf(“error: %s\n“sqlite3_errmsg(db));
        return -1;
    }
    
    char *errmsg;

    char para[21];
    bzero(para21);

    memcpy(para name 20);
    
    if(SQLITE_OK != sqlite3_exec(db“select * from user_info“ exists_callback para &errmsg))
    {
        printf(“error: %s\n“errmsg);
        return -1;
    }

    sqlite3_close(db);

    if(para[20] == 0)return 0; /* 若用户不存在 para[20]=0 */
    else return -1;
}

int validate_userinfo(const char *name const char *passwd)
{
    sqlite3 *db;
    
    if(sqlite3_open(“user_data.db“&db) != SQLITE_OK)
    {
        printf(“error: %s\n“sqlite3_errmsg(db));
        return -1;
    }
    
    char *errmsg;

    char para[41];
    bzero(para41);

    memcpy(para name 20);
    memcpy(para+20 passwd 20);
    
    if(SQLITE_OK != sqlite3_exec(db“select * from user_info“ usrinfo_callback para &errmsg))
    {
        printf(“error: %s\n“errmsg);
        return -1;
    }

    sqlite3_close(db);

    if(para[40] == 1)return 0; /* 若验证成功 para[40]=1 */
    else return -1;

}

int insert_sqlite(const char *name const char *passwd)
{
    if(0 != validate_userexists(name))
    {
        return 2;
    }
    sqlite3 *db;
    
    if(sqlite3_open(“user_data.db“&db) != SQLITE_OK)
    {
        printf(“error: %s\n“sqlite3_errmsg(db));
        return -1;
    }
    
    char *errmsg;

    char buff[100];
    sprintf(buff“insert into user_info values(\“%s\“\“%s\“)“ namepasswd);

    if(SQLITE_OK != sqlite3_exec(db buff NULL NULL &errmsg))
    {
        printf(“error: %s\n“errmsg);
        return -1;
    }

   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-08-23 20:25  linuxserver\
     文件       18760  2017-08-23 20:25  linuxserver\chatserver
     文件        1142  2017-08-23 20:25  linuxserver\global.h
     文件        8190  2017-08-23 20:25  linuxserver\lib.c
     文件         512  2017-08-23 20:25  linuxserver\lib.h
     文件        2131  2017-08-23 20:25  linuxserver\main.c
     文件         114  2017-08-23 20:25  linuxserver\Makefile
     文件        2048  2017-08-23 20:25  linuxserver\user_data.db
     目录           0  2017-08-23 21:12  QTclient\
     文件         481  2017-08-22 15:52  QTclient\chat.pro
     文件        5861  2017-08-22 15:59  QTclient\dialog.cpp
     文件         707  2017-08-22 14:57  QTclient\dialog.h
     文件         345  2017-08-22 14:57  QTclient\main.cpp
     文件        5257  2017-08-23 20:25  QTclient\mainwindow.cpp
     文件         998  2017-08-23 20:24  QTclient\mainwindow.h
     文件        3163  2017-08-22 21:58  QTclient\mainwindow.ui
     文件        2618  2017-08-22 15:51  QTclient\QQ.png
     文件          90  2017-08-22 15:52  QTclient\rc.qrc
     文件        1038  2017-08-22 14:08  QTclient\usr_info.h

评论

共有 条评论

相关资源