基于TCP的房屋出租系统

该项目是一个房屋出租管理系统,采用TCP协议进行客户端与服务端通信。系统分为注册和登录菜单,房东和租客两类用户具有不同权限。房东可管理房屋信息,租客只能查看。服务器使用IO多路复用实现并发处理,数据库包含用户账号密码和房屋信息表。注册和登录过程涉及数据验证与交互,确保用户账户安全。
摘要由CSDN通过智能技术生成

项目:房屋出租管理系统

  • 项目功能

菜单一

  1. 注册
  2. 登录
  3. 退出

菜单二

1显示房屋信息

2增加房屋信息

3删除房屋信息

4修改房屋信息

登陆人员分为两种 房东  租客

房东可以增加房屋信息,删除房屋信息,修改房屋信息,查看房屋信息

租客只能查看房屋信息

  • 项目实现步骤
  1. 客户端与服务端使用tcp协议通信

客户端:

  1. 创建套接字socket
  2. 绑定IP地址和端口号bind
  3. 按照服务器IP地址和端口号连接服务器connect
  4. 进入菜单1 注册或者登录

注册:给服务器发送指令,想要的用户名,想要的密码 服务器通过解析获得用户名和密码并插入到数据库中,插入时进行判断表中是否已经存在此用户名。存在返回user_exists 成功返回register_ok

登录:给服务器发送用户名和密码 服务器解析后对数据库进行用户名查找操作 对比接收到的密码和数据库中此用户名对应的密码,匹配返回login_ok;不匹配返回提示信息重新输入

  1. 登录成功后,进入菜单2可以通过向服务器发送指令对数据库进行增删改查操作
  1. 服务器采用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值