一个基于C++开发的简单易用的服务器程序编写框架。通过多线程异步方式处理从客户端发来的消息。
(还未完成,只有部分实现,并且希望能引入更好的内存分配机制)使用templete,可自由为server提供socket连接方式、消息处理方式。 主要特点:可处理字符串类消息或二进制类消息,字符串类消息可指定尾字符,自动分割出完整的消息体消息处理可通过模板扩充通过线程池处理消息,处理消息的类从基类继承。这是一个简单但完整的回显服务器代码示例:classCEchoTask :publicCStrMsgTaskBase{ voidDoAcceptSocket(intnSocket,stringstrClientIP) { printf("newclientconnected:%s\n",strClientIP); } intProcessMessage(intnSocket,stringstrClientIP,stringstrMsg) { printf("recvmsg:%s\n",strMsg.c_str()); //echo send(nSocket,(void*)strMsg.c_str(),strMsg.length()); return0; } };intmain(intargc,_TCHAR*argv[]){ //createserver CServer<CEchoTask,CStrMsgProcessor>*pEchoServer=newCServer<EchoTask, CStrMsgProcessor>("0.0.0.0",6000); //setstringmessagetail pEchoServer->SetMsgTail("\r\n",2); //startserver pEchoServer->Start(); //mainloop while(1) { //dosomething Sleep(10000); } //stopserver pEchoServer->Stop(); //deleteserver deletepEchoServer; return0;}
评论