资源简介
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
评论
共有 条评论