C++实现web服务器(Linux)

代码来源视频

代码来源github地址

代码框架介绍文档

 

 

一、使用

首先下载项目到linux系统中,然后进入yazi-web-main目录,使用make编译,编译结束后运行

//&表示后台运行,此时服务器已启动
./server &

 

运行./server后其实服务器已经启动,就不需要下面的这些步骤,下面步骤只是做一个监听,不影响使用。在浏览器中输入127.0.0.1:8080即可看到如下页面

http://127.0.0.1:8080/hello?name=tom&age=25

二、监听端口

 以下是监听端口,需要先下载net-tools

netstat用法

sudo apt-get install net-tools
netstat -an|grep :8080

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要用C++编写运行在Linux上的Web后端服务器,可以使用一些流行的网络库,例如Boost.Asio或libevent。这些库提供了处理网络请求和响应的功能,使得开发Web服务器变得更加容易。 以下是一个简单的示例程序,演示如何使用Boost.Asio来编写一个简单的Web服务器。 ```cpp #include <boost/asio.hpp> #include <iostream> #include <string> using boost::asio::ip::tcp; int main() { try { boost::asio::io_service io_service; // 监听端口为8080 tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 8080)); std::cout << "Server started. Listening on port 8080." << std::endl; while (true) { // 等待新的连接 tcp::socket socket(io_service); acceptor.accept(socket); std::cout << "New connection established." << std::endl; // 读取并解析HTTP请求 boost::asio::streambuf request_buffer; boost::asio::read_until(socket, request_buffer, "\r\n\r\n"); std::string request_data = boost::asio::buffer_cast<const char*>(request_buffer.data()); std::cout << "Received request:\n" << request_data << std::endl; // 构造HTTP响应 std::string response_body = "<html><body><h1>Hello, World!</h1></body></html>"; std::string response_headers = "HTTP/1.1 200 OK\r\nContent-Length: " + std::to_string(response_body.length()) + "\r\n\r\n"; // 发送响应 boost::asio::write(socket, boost::asio::buffer(response_headers)); boost::asio::write(socket, boost::asio::buffer(response_body)); std::cout << "Response sent." << std::endl; } } catch (std::exception& e) { std::cerr << "Exception: " << e.what() << std::endl; } return 0; } ``` 这个程序会监听8080端口,并且每当有新的连接请求时,会读取请求并发送“Hello, World!”作为响应。如果需要在更复杂的情况下使用,可以将其改写为支持多线程或异步I/O的服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aspiretop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值