simple_server
此组件是为了使用c++方便快速的构建http server,编写基于http协议json格式的接口,和nginx等传统服务器相比,更加重视开发的便捷性,项目参考restbed 实现, 重新实现的原因是restbed只支持g++4.9以上
特点
- 只支持linux
- 单进程+单线程模型
- g++3.4 以上编译器都支持
- 强调简洁实用
依赖
- simple_log 日志组件
- jsoncpp json序列化组件
性能
- qps 3000 (vmware虚拟机上ubuntu系统测试结果)
构建 && 测试
make && make test && ./bin/http_server_test
curl "localhost:3490/hello"
功能列表
- http 1.0/1.1(keep-alive 支持) GET/POST请求
- 便捷的开发形式
- Json格式的数据返回
例子
#include <sstream>
#include <cstdlib>
#include "simple_log.h"
#include "http_server.h"
Response hello(Request &request) {
Json::Value root;
root["hello"] = "world";
return Response(STATUS_OK, root);
}
Response sayhello(Request &request) {
std::string name = request.get_param("name");
std::string age = request.get_param("age");
Json::Value root;
root["name"] = name;
root["age"] = atoi(age.c_str());
return Response(STATUS_OK, root);
}
Response login(Request &request) {
std::string name = request.get_param("name");
std::string pwd = request.get_param("pwd");
LOG_DEBUG("login user which name:%s, pwd:%s", name.c_str(), pwd.c_str());
Json::Value root;
root["code"] = 0;
root["msg"] = "login success!";
return Response(STATUS_OK, root);
}
int main() {
HttpServer http_server;
http_server.add_mapping("/hello", hello);
http_server.add_mapping("/sayhello", sayhello);
http_server.add_mapping("/login", login, POST_METHOD);
http_server.start(3490);
return 0;
}
编译
g++ -I dependency/simple_log/include/ -I dependency/json-cpp/include/ -I bin/include test/http_server_test.cpp dependency/simple_log/lib/libsimplelog.a dependency/json-cpp/lib/libjson_libmt.a bin/lib/libsimpleserver.a -o bin/http_server_test
运行
liao@ubuntu:~/workspace/simple_server$ curl "localhost:3490/login" -d "name=tom&pwd=3"
{"code":0,"msg":"login success!"}
项目地址:https://github.com/hongliuliao/simple_server
相关推荐
标题中的"CPP_simple_client_server_socket-master_c/C++_simple_"暗示了这是一个关于C++实现的简单客户端-服务器套接字程序。在这个项目中,开发者可能创建了一个基础的网络通信框架,用于演示如何在C++中使用套接...
g++ simple_server_main.cpp ServerSocket.cpp Socket.cpp -o server -I . -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_video -lopencv_highgui -lopencv_imgproc 客户端: g++ simple_client_...
在这个名为"Simple_FTP_Server.zip"的压缩包中,我们看到的是一个基于C++实现的简单FTP服务器项目。C++ FTP服务器的开发通常涉及到网络编程、多线程以及文件操作等核心技能。 微软提供的WinInet API是一个方便...
通过以上分析,我们可以看出Simple-Web-Server是一个功能全面、易于使用的网络库,它为C++开发者提供了一种快速构建网络服务和客户端的途径。无论是在开发RESTful API还是进行网络通信测试,Simple-Web-Server都是一...
【标题】"Simple_Client_Server_clint_server_" 指示的是一个简单的客户端-服务器项目,可能是一个基础的网络通信程序,用于演示客户端如何与服务器进行交互。在这个项目中,客户端(clint)和服务器(server)是两...
Simple-Web-Server是一个轻量级的HTTP服务器,由Eidheim开发并托管在GitLab上。这个项目旨在提供一个简单的HTTP服务器实现,帮助开发者快速理解和学习网络编程的基本原理,特别是与HTTP协议相关的部分。在配置和使用...
本资源包提供的"简单易懂C++ WebServer接口开发源代码+详细注释"旨在帮助开发者学习如何在C++中实现Web服务器接口。下面将详细阐述相关知识点。 1. **Web服务器**:Web服务器是负责接收HTTP请求并返回HTTP响应的...
标签 "simple_server" 指出这是一个轻量级的解决方案,不需要复杂设置,适合初学者和需要快速验证想法的开发者。"anykis" 是可能的开发者或项目名,但具体信息需要进一步研究才能确定。"win_http_server" 表明它专为...
标题 "onvifserver-master_ONVIF_onvifserver_provej9f_Server_" 暗示了这是一个关于ONVIF服务器实现的项目,可能是源代码仓库的一个版本。描述提到"onvif server功能,能够编译成功",这意味着这个项目提供了一个...
在您提供的资料中,"onvif_server_ONVIF_"很可能是一个ONVIF服务器端应用的项目,包含了一个C++实现的客户端框架。让我们详细探讨一下ONVIF客户端和服务器端的主要功能以及相关知识点: 1. **ONVIF服务端**:ONVIF...
这个"Simple Client-Server Demo"就是一个展示这种模式的示例。在这个压缩包中,包含了一个简单的客户端和服务器端的代码,以及一个可能是提供下载来源信息的文本文件"www.pudn.com.txt"。 客户端-服务器架构的核心...
标题中的"simple_mapi_demo.zip_DEMO_Exchange mapi_exchange_exchange C++_ma"暗示了这是一个关于使用C++编程语言实现Microsoft Exchange邮件API(MAPI)的简单示例项目。Exchange MAPI是Microsoft Exchange Server...
标题中的"qpid-cpp-server"指的是Apache Qpid的C++服务器端实现,这是一个开源的消息传递系统,基于AMQP(Advanced Message Queuing Protocol)协议。它允许应用程序在分布式环境中进行可靠的数据交换,支持多种编程...
gSOAP是一个开源工具包,用于生成C和C++代码,以实现基于SOAP(Simple Object Access Protocol)的Web服务。这个"stock_server.rar"文件包含了一个使用gSOAP库编写的C++服务端示例,其主要目标是展示如何通过gSOAP来...
标题中的“Simple Web Server C++”是一个基于C++实现的轻量级Web服务器,它使得开发者可以方便地从C++应用程序提供RESTful风格的资源。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发...
标题中的"client-server-cpp.rar_server cpp"暗示了我们正在处理一个使用C++语言编写的网络通信项目,其中包含客户端和服务器端的代码。描述中提到的"simple client server application on c++ with using sockets...
总之,Simple WebSocket Server C++是一个方便的开源工具,为C++开发者提供了创建WebSocket服务器的能力。它具有良好的性能和易用性,是快速开发实时Web应用的合适选择。通过深入研究项目源代码和示例,你可以更好地...
下面我们将深入探讨TCP协议、C#与C++中的TCP客户端编程以及如何构建一个简单的TCP客户端。 首先,TCP是一种面向连接的、可靠的传输层协议,它通过三次握手建立连接,并确保数据的顺序和完整性。TCP通过确认、重传和...
一个简单的Websocket服务器 这是C ++ Web服务器实现支持协议 http https 网络套接字 websocket Secure(WSS)。 相依性 的openssl Windows10的 步骤执行 克隆项目 安装openssl(需要https和wss) 在Cmakelists中...
"rtsp-simple-server-0.21.0"这个文件很可能是这个C++ RTSP服务器项目的源码包。通过分析和学习这个项目,开发者可以深入理解RTSP服务器的工作原理,掌握如何处理TCP/UDP连接,解析和响应RTSP命令,以及如何编码和...