webbench作为一个简单的网站压力测试工具,小巧简单,其源码仅仅600行左右,是一个学习linux下C编程的好例子。
解压后的webbench由下面几个文件组成:
2个C源文件,一个是socket.c 另一个是webbench.c
socket.c
- 内部仅包含一个Socket函数,如下:
- int Socket(const char *host, int clientPort)
- {
- //以host和clientPort构成一对TCP的套接字(服务器)
- //创建sock bind connect
- //创建失败返回-1 成功返回一个sockt描述符
- }
- 在webbench.c源文件中,包含了下面几个函数:
- static void alarm_handler(int signal)
- static void usage(void)
- void build_request(const char *url)
- static int bench(void)
- void benchcore(const char *host, const int port, const char *req)
- int main(int argc, char *argv[])
现在用一张图来描述一下整个webbench的工作流程:
![](https://i-blog.csdnimg.cn/blog_migrate/27e9086e2335f23aed775c173988622e.png)
* Return codes:
* 0 - sucess