采用C++的ACE库实现的一个通用的udp通信服务器程序

采用C++的ACE库实现的一个通用的udp通信服务器程序

全部源代码如下:

ACE_Server.cpp

 


 


#include "ace/SOCK_Acceptor.h"

 

#include "ace/Acceptor.h"

 

#include "ace/Thread_Manager.h"

 

#include "ace/TP_Reactor.h"

 

#include "ace/Reactor.h"

 

#include "ace/INET_Addr.h"

 

#include "ace/OS.h"

 


 


#include "Request_Handler.h"

 

#include "Server.h"

 

#include "Constants.h"

 


 


using namespace ACE_Server;

 


 


int main(int argc, char *argv[])

 

{

 

    
     ACE_INET_Addr local_addr(SERVER_PORT_NUM);

 

  Request_Handler *endpoint;

  ACE_NEW_RETURN (endpoint,
                  Request_Handler (local_addr),
                  -1);

  // Read data from other side.
  if (ACE_Reactor::instance ()->register_handler
      (endpoint,
       ACE_Event_Handler::READ_MASK) == -1)
    ACE_ERROR_RETURN ((LM_ERROR,
                       "ACE_Reactor::register_handler"),
                      -1);
 


     Server server_tp;

 

     server_tp.activate(THR_NEW_LWP | THR_JOINABLE, SERVER_THREAD_POOL_SIZE);

 

     ACE_Thread_Manager::instance()->wait();

 


 


     return 0;

 

}

 


 


Constants.h

 


 


#ifndef __CONSTANTS_H_

 

#define __CONSTANTS_H_

 


 


namespace ACE_Server

 

{

 

     static const size_t SERVER_THREAD_POOL_SIZE = 5;   //进行数据接收的线程池大小

 

     static const size_t TASK_THREAD_POOL_SIZE = 5; //进行数据处理的线程池大小

 

     static const size_t BUFFER_SIZE = 4096;   //数据缓冲区大小

 

     static const size_t SERVER_PORT_NUM = 10101;   //服务器的通信端口号

 

}

 


 


#endif

 


 


Server.h

 


 


#ifndef __SERVER_H_

 

#define __SERVER_H_

 

<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值