一、常见的开源网络库:
- Adaptive Communication Environment,简称ACE,自适应通信环境。ACE代码复杂,封装繁琐,框架比较笨重,难修改,默认使用select,并非epoll;
- ZeroMQ,简称ZMQ。轻量级,简洁且灵活;
- boost::asio,本文将实现一个使用asio的demo;
- libevent:基于epoll的异步处理机制的库,多数被用来进行网络编程;
- tinyserver:微型服务器,默认是单线程允许,所以实际的生成价值并不高;
- LibSourcey:是一个基于c++14标准,用于高性能网络服务器开发的,较冷门,参考资料少;
- Casablanca:基于C++11标准,C++ REST SDK的别名,微软开源的项目,基于REST API协议,集成了 boost::asio;
- websocket++:基于 boost库的一个封装,封装了asio。
上面的一些库并没有接触过,先在这里做个标记,以后有时间了慢慢的啃,接下来给出一个使用boost::asio进行网络通信的demo。
二、boost::asio简介:
在这里先简单的介绍一下这个库,在1.4.3版本引入epoll来实现异步处理,可以结合其他boost库来实现更为轻大的功能,十分的灵活,充分理解架构后&#