simC++ 网络服务器框架

联合创作 · 2023-09-29 12:40

sim 是一个简单的 C++ 网络服务器框架。使用这个框架,可以帮助你快速上手编写自定义的 C++ 服务器应用,避免繁琐的网络 IO 和连接管理等细节。

Sim 的报文协议设计得非常巧妙, 使得你可以用 nc/telnet 等工具配置进行调试, 快速开发。例如, 你可以用 nc 连接到 Sim 框架编写的服务器, 然后输入:

ping hello world!

发给服务器请求。

demo:

#include "sim/sim.h"

class MyHandler : public sim::Handler
{
public:
	virtual sim::HandlerState proc(const sim::Request &req, sim::Response *resp){
		std::string cmd = req.msg.type();
		if(cmd == "ping"){
			resp->msg.add("ok");
			resp->msg.add("pong");
		}else{
			resp->msg.add("ok");
			resp->msg.add(cmd);
		}
		return this->resp();
	}
};

int main(int argc, char **argv){
	const char *ip = "127.0.0.1";
	int port = 8800;
	sim::Server *serv = sim::Server::listen(ip, port);
	if(!serv){
		log_fatal("%s", strerror(errno));
		exit(0);
	}
	log_info("server listen on %s:%d", ip, port);

	MyHandler handler;
	serv->add_handler(&handler);

	serv->loop();
	return 0;
}

 

浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报