一个基于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; }