simC++ 網(wǎng)絡(luò)服務(wù)器框架
sim 是一個簡單的 C++ 網(wǎng)絡(luò)服務(wù)器框架。使用這個框架,可以幫助你快速上手編寫自定義的 C++ 服務(wù)器應(yīng)用,避免繁瑣的網(wǎng)絡(luò) IO 和連接管理等細(xì)節(jié)。
Sim 的報(bào)文協(xié)議設(shè)計(jì)得非常巧妙, 使得你可以用 nc/telnet 等工具配置進(jìn)行調(diào)試, 快速開發(fā)。例如, 你可以用 nc 連接到 Sim 框架編寫的服務(wù)器, 然后輸入:
ping hello world!
發(fā)給服務(wù)器請求。
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;
}
評論
圖片
表情
