高性能服务器开发;C++深探

一个udp server的仿组件的封装,抛砖引玉

让使用者隔离通讯层,只专注于业务层的代码实现,一个UDP server组建的封装和测试。贴上部分代码,完整的源代码请下载udpserver.tar.gz;cygwin下调试通过。

 1// upudpserver
 2//
 3//
 4//////////////////////////////////////
 5#ifndef _UPUDPSERVER_H_
 6#define _UPUDPSERVER_H_
 7
 8#include "upudp.h"
 9
10/* 接受到数据触发的业务层处理函数类型定义
11  char*---数据缓冲区指针
12  int&----数据长度,in、out参数
13  char*---client ip
14  int&----client port
15*/

16typedef int (*OnRecved)(char*,int&,char*,int&);
17//线程结束处理函数
18typedef int (*OnTerminated)();
19
20class CUpUdpServer : public CUpBase
21{
22public:
23    CUpUdpServer()
24    {
25        m_onrecved = NULL;        
26        m_onterminated = NULL;        
27        irun_status=0;                
28    }

29    ~CUpUdpServer()
30    {        
31    }
    
32public:
33    int startserver(const char* pszip, int iport);
34    int stopserver();
35    
36//以类似于属性的方式公开并且使用,仿IDE的事件    
37public:
38    OnRecved      m_onrecved;
39    OnTerminated  m_onterminated;
40
41protected:
42    
43private:
44    static void* thread_recv(void* pvoid);
45private:
46    pthread_t  m_thread_recv;
47    sem_t  m_sem_recv_control;
48    CUpSocketUdp  m_udpsocket;    
49    int irun_status;
50    
51}
;
52
53#endif //_UPUDPSERVER_H_
54

posted on 2010-12-14 11:34 changup 阅读(2126) 评论(1)  编辑 收藏 引用 所属分类: 高性能服务器实践随想

Feedback

# re: 一个udp server的仿组件的封装,抛砖引玉 2010-12-15 10:48 gordenisgk

你看过这个开源项目没有,c++ sockets ,和你的很像啊,最近就用c++ socket封装了一个消息队列传输的功能  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理