最简单WebServer运行原理

WebServer

WebServer本质的实现是一个无限轮询监听请求的过程,类似如下示例,如果需要监听网络请求需要建立 Socket 并绑定监听端口,后续文章中会有TCP服务器的实现的演示,本文不实现 TCP 部分。

头文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef __MYPHP_SERVER__
#define __MYPHP_SERVER__

#include <iostream>
#include <unistd.h>

namespace myphp {
class Server {
public:
Server(/* args */);

~Server();

public:
void run();
};
}; //myphp

#endif //__MYPHP_SERVER__

实现文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "server.h"

namespace myphp {
Server::Server(/* args */) {
std::cout << "Construct" << std::endl;
};

Server::~Server() {
std::cout << "Destruct" << std::endl;
};

void Server::run() {
while (true) {
std::cout << "Runing..." << std::endl;
sleep(1);
}
};
}

测试程序

1
2
3
4
5
6
#include "server.h"

int main(int argc, char *argv[]) {
auto *server = new myphp::Server();
server->run();
}