c++中http服务 asio库使用案例
时间: 2024-02-06 15:08:44 浏览: 34
下面是一个简单的使用 Boost.Asio 库实现 HTTP 服务器的示例代码:
```cpp
#include <iostream>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
std::string make_http_response()
{
return "HTTP/1.1 200 OK\r\nContent-Length: 13\r\n\r\nHello, World!";
}
int main()
{
try
{
boost::asio::io_context io_context;
tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 8080));
std::cout << "HTTP server started. Listening on port 8080." << std::endl;
while (true)
{
tcp::socket socket(io_context);
acceptor.accept(socket);
std::cout << "Client connected." << std::endl;
boost::system::error_code error;
// 发送 HTTP 响应给客户端
boost::asio::write(socket, boost::asio::buffer(make_http_response()), error);
if (error)
{
std::cerr << "Error sending HTTP response: " << error.message() << std::endl;
}
}
}
catch (std::exception& e)
{
std::cerr << "Exception: " << e.what() << std::endl;
}
return 0;
}
```
该代码实现了一个简单的 HTTP 服务器,监听本地 8080 端口,并在有客户端连接时发送 "Hello, World!" 的 HTTP 响应。可以使用浏览器或其他 HTTP 客户端访问该服务器来查看响应。