boost::asio 连接管理8

到上一篇,一个完整的单线程版本就出现了。如果并发要求不高的话,单线程+异步I/O已经足够了。

但是如果想支持大并发,自然需要尽可能的利用服务器上的多个CPU和核。

现在首先把之前的工程改成cmake工程。

顶层目录的CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 2.8)
project (TcpTemplate)
add_subdirectory(src bin)

src目录下的CMakeLists.txt文件配置:

cmake_minimum_required(VERSION 2.8)
set(CMAKE_BUILD_TYPE Debug)
set(PROJECT_INCLUDE_DIR ../include)

find_package(Boost COMPONENTS system filesystem thread REQUIRED)
include_directories(${Boost_INCLUDE_DIR} ${PROJECT_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src CPP_LIST1)
AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/core CPP_LIST2)

add_executable(service ${CPP_LIST1} ${CPP_LIST2})
target_link_libraries(service ${Boost_LIBRARIES})

add_definitions(-Wall)

好,现在看一下main.cc,没有什么太大变化,只是把Server类的代码剥离出去了。

#include <iostream>
#include "core/server.h"

using namespace std;

int main(int argc,char ** argv) {
    try {
	io_service iosev;
	tcp::endpoint listen_endpoint(tcp::v4(), 8888);
        Server server(iosev, listen_endpoint, 10);
        server.Run();
    } catch(std::exception const& ex) {
      cout << "Exception: " << ex.what() << "";
    }
}

Server类和Connection类都放在c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值