网络编程项目框架内容

基于TCP的云端书阅管理系统

通过网络实现图书借阅网站,包括服务器与客户端,客户端与服务器是基于TCP连接。

客户端描述:客户端运行会与服务器端进行连接,连接成功后,显示注册登录界面。此时,客户端可以选择注册一个新账号,然后把注册的新账号信息发送给服务器端,服务器端验证是新用户后,会把注册成功的信息通知客户端。注册成功后,客户端选择登录账号,将输入的账号信息发送给服务器端验证是否存在此用户,若存在此用户,服务器端就会通知客户端登录成功。登录成功后,用户客户端可以完成以下操作:

  1. 更新书籍
  2. 查询书籍信息
  3. 借阅书籍
  4. 归还书籍
  5. 查看借阅书籍的历史记录

服务器端功能描述:服务器端启动后,等待客户端进行连接。然后完成以下操作:

  1. 创建用户表、书籍表、借阅历史记录表
  2. 接受用户的注册信息,账号信息不能重复
  3. 接受用户的登录信息
  4. 将书籍信息写入书籍数据表中
  5. 从书籍数据表中查询对应的书籍信息
  6. 借阅书籍后,书籍数据表中对应的书籍数量减1,如果书籍数量为0,则提示书籍数量不足;借阅书籍的同时,将该书籍的信息以及借阅时间插入到借阅历史记录表中
  7. 归还书籍后,书籍数据表中对应的书籍数量加1
  8. 查询借阅历史记录

Socket 编程

启动服务端程序,监听端口,等待客户端连接。完成客户端与服务端简单的TCP连接。使用线程完成客户端与服务端之间的一对多的连接。服务端显示每个客户端的基本信息:每个客户端的IP、端口等信息。

数据包协议

客户端使用 TCP 连接服务端后,发送接受数据使用数据封包。封包格式如下: | 协议版本(1) | 数据包类型(1)| 数据包的长度(2)| 数据包的内容(变长)|

协议版本:发送端填充自己的该数据包的版本信息,服务端接受数据包后,查看该版本是否是自己能识别的版本。是则进行解析,否则作为非法数据包(一般丢弃)。数据包类型:发送端根据自己发送的数据包里面的数据内容的不同填充不同的类型。 如:如果数据包的数据信息是登录信息,类型为0x0001。如果是断开连接的信息则类型为 0x0002。这样接收端接受到数据之后就可以根据数据类型的值,对数据做不同的处理。数据包的长度:TCP 是数据流协议,数据发送者多次发送的数据,但在 tcp 的接受端缓冲区内数据与数据之间没有间隔,无法分开,所以在数据包中增加一项数据长度。这样接收端可以根据数据长度信息确定本数据包的长度,确定要从 tcp 的缓冲区内每次要读取的长度。 数据包内容:要发送的数据。 数据包发送者:在发送数据前,在数据前增加数据包头。数据包头包含以上的包头信息。封包可以采用数据结构:

struct pack_head

{

unsigned char ver;

unsigned char type;

unsigned short len;

char buf[0];//buf 指针作为数据包的缓冲的包头

};

数据包接受端:接受到数据后,分成两次读取一个数据包,第一次读取首先读取一个数据包头长度,然后根据数据包头中的数据长度读取整个数据包。这样一个一个的数据包就分别被读取出来。数据包协议总结:协议是数据的收发端之间一种约定要好的一种规定。发送者按照该格式发送,接受者按照该格式进行解析。

数据管理

服务器端接收所有客户端的信息,将所有的账号、密码以及书籍信息记录在数据库中统一管理。

用户信息表:用户名、密码

书籍信息表:书名、作者名、书籍数量

借阅历史记录表:用户名、借阅的书名、借阅的日期

相关推荐
wanhengidc26 分钟前
云手机可以息屏挂手游吗?
运维·网络·安全·游戏·智能手机
一只小白菜~43 分钟前
实战记录:H3C路由器IS-IS Level-1邻居建立与路由发布
运维·网络·计算机网络·智能路由器
kenwm44 分钟前
家庭网络异常降速问题排查处理方案
网络·智能路由器
搬码临时工2 小时前
使用自定义固定公网URL地址远程访问公司内网OA办公系统,本地无需公网IP和专线让外网访问
网络·网络协议·tcp/ip
JuneXcy2 小时前
结构体简介
c语言·数据结构·算法
jiaway3 小时前
【C语言】第四课 指针与内存管理
c语言·开发语言·算法
星马梦缘3 小时前
计算机网络6 第六章 应用层——解决“怎么发请求、怎么回响应”的问题(邮件整体传输流程)
网络·计算机网络·域名·ftp·dns·dhcp
@CLoudbays_Martin113 小时前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
黑客思维者4 小时前
《我是如何用C语言写工控系统的漏洞和Bug》连载(1)内容大纲
c语言·bug·工控漏洞
东哥说-MES|从入门到精通5 小时前
Mazak MTF 2025制造未来参观总结
大数据·网络·人工智能·制造·智能制造·数字化