一、项目原理
1、开发工具
Linux操作系统、Ubuntu、VScode、sqlite3数据库
2、涉及知识点
1、TCP并发服务模型
2、文件IO
3、sqlite3命令语句
3、原理
1、TCP多线程并发服务器实现多用户同时登录
2、服务器中创建数据库,在数据库中创建员工信息表和历史记录表存放相关信息
3、登录成功后选择相应操作编号,调用send函数发送给服务器,服务器执行对应功能函数
4、功能函数中主要通过封装sqlite3命令,调用sqlite3函数实现相应增删改查功能
5、增删改查的结果服务器调用recv函数发送给客户端,客户端进行打印
二、基本功能
1、可实现多用户同时登录,用户分为管理员用户和普通用户
2、管理员用户可以对其他用户进行增删改查
3、普通用户只能对自己的信息进行更改和查看
4、员工的登录信息存放在历史记录表中,管理员可查看
三、效果展示
管理员登录>>>
管理员查询>>>
管理员修改、添加、删除用户>>>
普通用户实现>>>
四、源码
头文件>>>
#ifndef __STAFF_H__
#define __STAFF_H__
#define ERR_MSG(msg) do{\
fprintf(stderr,"__%d__:",__LINE__);\
perror(msg);\
}while(0)
#define PORT 8888
#define IP "192.168.250.100"
//定义员工信息结构体
typedef struct staff_info{
int num;
int usertype;
char name[16];
char passwd[8];
int age;
char phone[16];
char addr[128];
char work[128];
char date[128];
int level;
double salary;
}staff_info_t;
//定义通信的结构体信息
typedef struct {
int msgtype;
int usertype;
char username[128];
char passwd[8];
char recvmsg[1024];
int flags;
staff_info_t info;
}msg;
struct fcd
{
int newfd;
struct sockaddr_in cin;
sqlite3* db;
};
#endif
服务器及客户端源码
见附件