酒店管理系统
项目描述: 项目功能要求:
1.项目环境:linux +Mysql+socket网络编程
2.吧台:通过超级管理员的账号、密码登陆后,可以添加、查看、修改、删除员工、会员、菜品、原材料基本信息;查看、删除点单,点单消费结算等功能。
3.手持终端:通过账号、密码登陆成功后,可以直接进行查看菜品,服务顾客点菜(可加菜、改菜、删菜),查看菜品的状态,从而及时送菜。
4.厨房终端:通过账号、密码登陆成功后,查看点单信息,并打印出所点菜单,每桌消费者菜单有三种状态,等待、准备中、完成。
功能实现:
1.编写客户端功能函数(增删查改),编写服务器对应的功能函数(增删查改),编写数据库C接口功能函数(增删查改)。
2客户端通过TCP协议与服务器连接,将所需的数据类型及数据操作写入数据包头并调用对应的功能函数发送给服务器。
3.服务器通过TCP协议与客户端建立连接,通过IO复用(select)和多个客户端进行数据交互(读取(read)数据包头,根据数据包头中的数据类型及数据操作调用对应的功能函数通过对应的Mysql API对数据库操作,并修改数据包头的数据操作再把数据包头及数据打包发送(write)给客户端)。
4.客户端读取服务器返回的数据完成相应的操作。
5.系统可使用性,使用“心跳”机制,当客户端由于网络等问题断开连接时,服务器也做对应的处理。
1.>(心跳机制实现描述)
1.)在服务端定义心跳数据结构体
2.) 分别跟服务端 客户端设置定时器 并且启动定时器
3.)通过心跳数据结构体定义一个链表把客户端相关信息进行保存 并且在结构体中设置 标志位 初始化为0
4.)服务端端每过10s遍历心跳链表一次并且进行判断每个客户端标志位 判断到3说明客户端已经端口链接 和对每个节点的标志位进行加一;
5.)客户端每过5s发送一次心跳包,服务端接收到心跳包并且在心跳链表给对应的客户端的标志位 进行清零;