系统名称: 基于TCP网络通信及数据库的网页查询系统
文档作者:清馨
创作时间:2024-8-3
最新修改时间:2024-8-6
最新版本号: 1.0
1.背景描述:
该系统为创建网络并发服务器,通过HTTP超文本网络传输与用户建立连接(TCP建立连接),从自己建立的数据库中查询用户所需信息,使用户能在网页中直接查询相关内容。本系统包括4个页面,包括(一级登陆页面,二级商品查询信息页面,三级商品概述页面,四级商品详情页面),使用户可以精准查询内容。
2.项目功能:
1.服务端创建:
(并发服务器:使用多进行实现)接收网页发送的报文并进行解析,从解析出的内容中编写网页所需要的响应报文进行回发
( "HTTP/1.1 200 OK\r\n"
"Content-Type: text/html;charset=utf-8\r\n"
"Server: my-web-server\r\n"
"Connection: close\r\n\r\n";
),实现用户网页的前端内容打印呈现。
2.前端网页html的接收:
网页构造代码,由于需要我们通过网络传输,我们通过将网页代码拼接,来达成我们多段输入和插入的图片,文字,格式等浏览器自己解析的内容。
例如:网页头部:"<!DOCTYPE html>\n"
"<html>\n"
"<head>\n"
"<meta charset = \"utf-8\">\n"
"<title>商品</title>\n"
"</head>\n"
"<body background=\"preview.gif\" align=\"center\"><br><br>\n"
"<h1>商品</h1><br><br>\n";
网页尾部:"</html>\n";
网页所需查询内容:由我们仿照浏览器代码形式进行编写。
最后将头部-内容-尾部三段依次通过write写入,预防指针或者 数组内容越界,导致段错误。
3.三级界面由模糊查询寻找所有相关商品:
由于数据库内有sn编码作为其唯一地址,所以我们通过模糊查找后,在其图片链接中直接由他的sn编码作为.html的网页名称,这样我们可以更准确且方便的查询商品具体信息。
3.项目模块分析介绍:
1.主体main.c进行各种封装功能的调用。
2.封装函数功能:
1.服务器初始化(send_http_request)
2.接收数据(send_http_request)
3.接收到的数据报文解析
将报文解析后截断,存放在接收类型,url与内容三个 主体中(parse_init)
4. 解析报文通过TCP传输数据传输到用户网络
我们编写了三个相关传输函数,
分别为回应网页请求头部 (send_http_request_head)
读取文件并发送的(send_file)
回复网页请求并创建相关网页内容的 (send_http_request)
5.结束回收。
3.汉语用户名解析(urldeconde)
4.网页的基础功能模块:用户登录,商品查询,商品概述,商品超链接跳转网页。
5.信息存储功能(log)
4.项目流程图:
数据库内容
多文件管理
主函数:
send发送与解析相关函数
初始化与接收:
makefile:
hand头文件
各个封装函数的声明头文件:
login.html:
find.html:
其余网页由文件拼接而成:
补一张按天进行封存的日志log模块: