light-server-frame TCP/UDP服务程序框架

程序名称:light-server-frame

授权协议: LGPL

操作系统: Windows

开发语言: C/C++

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] 举报,一经查实,本站将立刻删除。