项目:房屋出租管理系统
- 项目功能
菜单一
- 注册
- 登录
- 退出
菜单二
1显示房屋信息
2增加房屋信息
3删除房屋信息
4修改房屋信息
登陆人员分为两种 房东 租客
房东可以增加房屋信息,删除房屋信息,修改房屋信息,查看房屋信息
租客只能查看房屋信息
- 项目实现步骤
- 客户端与服务端使用tcp协议通信
客户端:
- 创建套接字socket
- 绑定IP地址和端口号bind
- 按照服务器IP地址和端口号连接服务器connect
- 进入菜单1 注册或者登录
注册:给服务器发送指令,想要的用户名,想要的密码 服务器通过解析获得用户名和密码并插入到数据库中,插入时进行判断表中是否已经存在此用户名。存在返回user_exists 成功返回register_ok
登录:给服务器发送用户名和密码 服务器解析后对数据库进行用户名查找操作 对比接收到的密码和数据库中此用户名对应的密码,匹配返回login_ok;不匹配返回提示信息重新输入
- 登录成功后,进入菜单2可以通过向服务器发送指令对数据库进行增删改查操作
- 服务器采用IO多路复用并发服务器
服务器:
1、创建套接字socket
2、绑定IP地址和端口号bind
3、创建监听队列listen
4、创建文件描述符的表并将listen加入文件描述符的表
5、创建一个死循环将表交给select函数等待并建立连接accept,只要有客户端来连接就会产生新的connf,加入文件描述符的表
6、通信 不管是有新的客户端连接或者已经建立连接的客户端发信息 select都会返回,然后进入到不同的IO操作的分支去处理这路IO
3、客户端通过向服务器发送指令来操作数据库
4、数据库有三个表一个用来存储房屋信息,一个用来存放房东的账号密码
一个用于存放租客的账号密码
表1用户账号密码
user_id
user_password
表2房东账号密码
usrname
password
表3 房屋信息
addr
price
三、通信协议
登录和注册
注册 register
登录 logion
客户端:”命令#用户名#密码”--》服务器通过解析得到命令 用户名 密码
注册:
客户端向服务器发送指令命令#用户名#密码 ,服务器解析后得到命令 用户名 密码
判断命令是否为 register
是进入增加增加用户函数,函数出错服务器给客户端发送register error
先进行判断此用户是否存在 存在返回5
服务器进行判断ret 返回值为5 给客户端发送 register exist
成功服务器给客户端发送regist ok
登录:
客户端向服务器发送指令命令#用户名#密码 ,服务器解析后得到命令 用户名 密码
判断命令是否为 login
是 进入增加用户函数
通过用户名先查找用户是否存在与数据库中
不存在返回-2 服务器中ret = -2 给客户端发送 login error no this usr
用户存在
通过用户名查找数据库得到密码
将客户端传过来的密码和查找到的密码进行比较
不匹配返回-3 服务器中ret= -3 给客户端发送 login error passwd error
匹配给客户端发送 login ok