项目--代码流程、运行步骤与调试

本文介绍了如何构建和调试一个基于Linux的WebServer。首先,通过main.c初始化服务器并连接MySQL数据库,创建数据库和表,然后通过makefile编译生成可执行文件。接着,利用gcc和gdb进行调试,设置断点和查看变量。最后,使用webbench进行性能测试,评估服务器的响应速度和数据传输能力。
摘要由CSDN通过智能技术生成

项目代码流程

        模拟proactor:主线程监听,执行数据读写操作,读写完成后主线程向工作线程通知这一“完成事件”,交给工作线程进行处理。

        首先在mian.c中WebServer server创建server对象,先执行构造函数,初始化变量,

        之后进行start

运行

登录linux系统的mysql:sudo mysql -u root -p 密码zj        (版本为5.7.42)

修改WebServer文件下的mian.c中的mysql的用户名喝密码

创建并使用一个webserver数据库:create database webserver; use webserver;

创建user表:     

CREATE TABLE user(
    username char(50) NULL,
    password char(50) NULL
)ENGINE=InnoDB;

 添加数据:INSERT INTO user(username, password) VALUES('newcoder', 'newcoder');

 makefile文件就是一系列的规则,通过make命令找到makefile文件,通过里面的规则编译生成可执行文件

 安装gcc/g++/make等工具

 cd到WebServer-mastor文件夹执行make命令

执行server:.bin/server

此时服务器已经启动了

ifconfig查找一下服务器的ip地址

网页客户端连接服务器:http://10.102.99.181:1316

调试

关闭编译器的优化选项(-o),打开调试选项(-g),在尽量不影响程序行为的情况下选项打开所有warning(-wall),可避免一些不必要的BUG

        gcc -g -wall test.c -o test

        gdb test

给程序设置参数:set args 8888

其他命令可输入help查看各命令

想要查看某一个文件的内容(例如test.c)可输入:l test.cpp

想要查看某一文件的某一函数,可输入:l test.cpp:selectSort

 查看断点信息:

        b 8

        i b

运行断点:run

向下执行,遇到函数体进入函数体:s

向下执行,遇到函数体不进入函数体:n

打印变量信息:p i

        -pthread 多线程的库,-lmysqlclient数据库的库

1、库文件是一种代码仓库,提供给使用者一些可以直接拿来用的变量、函数或类。

2、库不能单独运行,是一种特殊的程序

3、静态库在链接阶段被复制到程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供动态调用

        静态库和动态库的制作

        Linux系统编程1-Linux系统基础_zhaojiazb的博客-CSDN博客

测试

基本原理:Webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。

        测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况;

        展示服务器的两项内容:每秒钟响应请求数和每秒钟传输数据量。

cd到webbench-1.5目录下make:

        webbench -c 10000 -t 30 http://127.0.0.1:1316/index.html

-c表示客户端数;-t表示时间

netstat -anp | grep 1316 显示与端口的连接状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值