第7月第27天 c++11 boost
1.
#include <boost/asio.hpp>
#include <cstdlib>
#include <memory>
namespace asio = boost::asio;
namespace sys = boost::system;
using boost::asio::ip::tcp;
struct session : public std::enable_shared_from_this<session> { session(tcp::socket socket) : socket_(std::move(socket)) {}
void start() { do_read(); } private:
void do_read() {
auto self(shared_from_this());
socket_.async_read_some(
asio::buffer(data_, max_length),
[this, self](sys::error_code ec, std::size_t length) {
if (!ec) {
do_write(length);
}
});
}
void do_write(std::size_t length) {
auto self(shared_from_this());
async_write(socket_, asio::buffer(data_, length),
[this, self](sys::error_code ec, std::size_t /*length*/) {
if (!ec) {
do_read();
}
});
} private:
tcp::socket socket_;
enum { max_length = };
char data_[max_length];
}; struct server {
server(asio::io_service &io_service, short port)
: acceptor_(io_service, tcp::endpoint(tcp::v4(), port)),
socket_(io_service) {
do_accept();
}
void do_accept() {
acceptor_.async_accept(socket_, [this](sys::error_code ec) {
if (!ec) {
std::make_shared<session>(std::move(socket_))->start();
}
do_accept();
});
}
tcp::acceptor acceptor_;
tcp::socket socket_;
}; int main(int argc, char *argv[]) {
try {
if (argc != ) {
//std::cerr << "Usage: ";
}
asio::io_service io_service;
server s(io_service, std::atoi(""));
io_service.run();
} catch (const std::exception &e) {
//std::cerr << "Exception: " << e.what() << "\n";
}
}
第7月第27天 c++11 boost的更多相关文章
- 第27月第27天 https
1.验证签名 { [self generateRSAKeyPair:kRSA_KEY_SIZE]; NSData *ttDt = [" dataUsingEncoding:NSASCIISt ...
- 第9月第27天 AVAssetExportSession AVAssetExportPresetMediumQuality
1. AVAssetExportPresetMediumQuality和 AVAssetExportPreset960x540 码率相差很大,视频大小也会相差很大 AVAssetExportPrese ...
- 第3月第27天 uitableviewcell复用
1. 有需求cell一行放两个子view,也可以放3个.子view控件都是一样,只有大小区分.需要复用吗? 复用实现:创建时创建3个,拿到数据时是两个就设置两个的frame,是3个就设置3个的fram ...
- 第29月第27天 Error: Multiple commands produce
1. 解决方法可以有两种,一种是不使用New Build System,在File > Project/Workspace Settings中的Share Project/Workspace S ...
- 第16月第27天 pip install virtualenv ipython sip brew search
1. pip install virtualenv virtualenv testvir cd testvir cd Scripts activate pip https://zhuanlan.zhi ...
- 第5月第27天 cocos2d
1. 流程是这样的: 在CCApplication的run函数中,显示设备链调用相应的场景显示函数drawScene来绘制场景,然后调用了CCScheduler的update函数,在这个函数里,对所有 ...
- C++11 boost TR1 TR2曾经参考过的网址整理
boost::bind的用法:http://blog.csdn.net/adcxf/article/details/3970116
- 武汉Uber优步司机奖励政策(12月21日-12.27日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- CSDN问答频道“华章杯”11月排行榜活动开始,丰厚奖品等你拿
CSDN问答频道月度排行榜,是CSDN问答频道从3月开始举办的活动,旨在鼓励更多用户参与提问和解答,创造一个良好的互帮互助氛围,使参与者在问和答的过程中得到技术水平的提升,也希望大家能在技术交流中结交 ...
随机推荐
- 树形DP ---- Codeforces Global Round 2 F. Niyaz and Small Degrees引发的一场血案
Aspirations:没有结果,没有成绩,acm是否有意义?它最大的意义就是让我培养快速理解和应用一个个未知知识点的能力. ————————————————————————————————————— ...
- kali linux 安装Nessus
Nessus 介绍: Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件.总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件. 下载Nessus,我的是64为,我选择 ...
- 互联网寒冬,Python 程序员如何准备面试
虽说年年都在喊互联网寒冬,最难就业季,但是今年确实有点不一样,年前年后一波又一波互联网公司宣布『人员调整,结构优化』, 这是往年没发生过的. 是不是面试机会就少了很多呢?不是的. 搜索招聘网站我们可以 ...
- 第二个Sprint冲刺第二天(燃尽图)
- Software-Defined Networking:A Comprehensive Survey--Day2
Software-Defined Networking:A Comprehensive Survey (续+1s) IV. SOFTWARE-DEFINED NETWORKS: BOTTOM-UP S ...
- kubectl 命令记录 转帖自: https://www.kubernetes.org.cn/doc-45
kubectl annotate – 更新资源的注解. kubectl api-versions – 以“组/版本”的格式输出服务端支持的API版本. kubectl apply – 通过文件名或控制 ...
- Android Sensor——传感器
Android SDK 支持的传感器类型,在Sensor类中的定义: 01.TYPE_ACCELEROMETER : 加速传感器(硬件) 02.TYPE_AMBIENT_TEMPERATURE : ...
- 关于“代码规范”,“Review”和“Check list”(续)
在前两天的 关于“代码规范”,“Review”和“Check list” 一文中,我给自己列出了Check list,如下: 1.代码能够工作么?它有没有实现预期的功能,逻辑是否正确等. ...
- ES6学习笔记(五):Class和Module
Class Class 只是一个语法糖,其功能用es5也能实现,但是比es5更符合类的期待 定义: constructor代表构造方法,而this指向new 生成的实例 定义类方法时,可以不使用fun ...
- [APIO2018] Duathlon 铁人两项
不经过重点,考虑点双 点双,考虑圆方树 两个点s,t,中间路径上,所有点双里的点都可以经过,特别地,s,t作为割点的时候,不能往后走,也就是不能经过身后的方点 也就是,(s,t)经过树上路径上的所有圆 ...