员工管理系统功能介绍:
1)服务器负责管理所有员工表单(以数据库形式),其他客户端可通过网络连接服务器来查询员工表单。
2)需要账号密码登陆,其中需要区分管理员账号还是普通用户账号。
3)管理员账号可以查看、修改、添加、删除员工信息,同时具有查询历史记录功能,管理员要负责管理所有的普通用户。
4)普通用户只能查询修改与本人有关的相关信息,其他员工信息不得查看修改。
5)服务器能同时相应多台客户端的请求功能。并发
流程图
服务器:
客户端:
服务器模型
1.定义epoll事件,创建epoll的fd
int epfd,epct,i;
struct epoll_event event; //定义epoll 事件
struct epoll_event events[20]; //定义epoll 事件集合
epfd = epoll_create(1); // 创建epoll 的fd
2.填充事件
event.data.fd = serverFd; //填充事件的fd
event.events = EPOLLIN | EPOLLET; //填充 事件类型
epoll_ctl(epfd,EPOLL_CTL_ADD,serverFd,&event); //把serverFd(监听FD)注册到epfd中
3.监听事件
while(1){
epct = epoll_wait(epfd,events,20,-1); // 等待事件到来,阻塞模式
for(i=0;i<epct;i++){ //根据epoll返回的值来查询事件
if(events[i].data.fd == serverFd){ // 如果事件的fd是监听fd,调用accept处理
clientFd = accept();
//添加clientfd描述符
epoll_ctl(epfd,EPOLL_CTL_ADD,clientFd,&event);
}else {
//如果不是serverFd,应是client数据事件,调用读数据
read();
}
}
}