C++实现简单的HTTP服务器
HTTP服务器是一种用于提供网络服务的应用程序,它的主要作用是处理客户端发来的请求,并返回相应的响应。HTTP服务器由一系列的程序组成,包括HTTP守护进程、HTTP客户端、HTTP服务器、HTTP代理服务器等。
C++语言可以用来实现简单的HTTP服务器,下面是一段C++实现的简单HTTP服务器示例代码:
#include#include #include #include #include #include using namespace std; int main() { // 创建socket int sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { cout << "create socket failed!" << endl; return -1; } // 绑定端口 struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(80); addr.sin_addr.s_addr = INADDR_ANY; if (bind(sockfd, (struct sockaddr*)&addr, sizeof(addr)) == -1) { cout << "bind failed!" << endl; return -1; } // 监听端口 if (listen(sockfd, 10) == -1) { cout << "listen failed!" << endl; return -1; } // 接受客户端请求 struct sockaddr_in client_addr; socklen_t len = sizeof(client_addr); int client_fd = accept(sockfd, (struct sockaddr*)&client_addr, &len); if (client_fd == -1) { cout << "accept failed!" << endl; return -1; } else { cout << "accept success!" << endl; } // 读取客户端请求 char buf[1024]; int n = read(client_fd, buf, sizeof(buf)); if (n == -1) { cout << "read failed!" << endl; return -1; } else { cout << "read success!" << endl; } // 解析客户端请求 string request(buf); cout << request << endl; // 返回响应 string response = "HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nHello World"; if (write(client_fd, response.c_str(), response.size()) == -1) { cout << "write failed!" << endl; return -1; } else { cout << "write success!" << endl; } // 关闭socket close(sockfd); close(client_fd); return 0; }
以上代码实现了一个简单的HTTP服务器,它能够接受客户端的请求,并返回响应。使用方法是:编译上面的代码,运行编译后的可执行文件,此时HTTP服务器就开始运行了,它会监听本地的80端口,如果有客户端发送请求,服务器就会接受请求,并返回响应。