light-server-frame 介绍
一个基于C++开发的简单易用的服务器程序编写框架。通过多线程异步方式处理从客户端发来的消息。
(还未完成,只有部分实现,并且希望能引入更好的内存分配机制)
使用templete,可自由为server提供socket连接方式、消息处理方式。
主要特点:
- 可处理字符串类消息或二进制类消息,字符串类消息可指定尾字符,自动分割出完整的消息体
- 消息处理可通过模板扩充
- 通过线程池处理消息,处理消息的类从基类继承。
这是一个简单但完整的回显服务器代码示例:
class CEchoTask :public CStrMsgTaskBase { void DoAcceptSocket(int nSocket, string strClientIP) { printf("new client connected: %s\n", strClientIP); } int ProcessMessage(int nSocket, string strClientIP, string strMsg) { printf("recv msg:%s\n", strMsg.c_str()); //echo send(nSocket, (void *)strMsg.c_str(), strMsg.length()); return 0; } }; int main(int argc, _TCHAR* argv[]) { //create server CServer<CEchoTask, CStrMsgProcessor> *pEchoServer = new CServer<EchoTask, CStrMsgProcessor>("0.0.0.0", 6000); //set string message tail pEchoServer->SetMsgTail("\r\n", 2); //start server pEchoServer->Start(); //main loop while(1) { //do something Sleep(10000); } //stop server pEchoServer->Stop(); //delete server delete pEchoServer; return 0; }
light-server-frame 官网
http://code.google.com/p/light-server-frame/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。