第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月开始举办的活动,旨在鼓励更多用户参与提问和解答,创造一个良好的互帮互助氛围,使参与者在问和答的过程中得到技术水平的提升,也希望大家能在技术交流中结交 ...
随机推荐
- B1048 数字加密
15/20 #include<bits/stdc++.h> using namespace std; stack<int> s; char a[3]={'J','Q','K'} ...
- NumCPU()在slice中的使用
package main import ( "fmt" "runtime" ) var slice []int func main() { array := m ...
- R语言做相关性分析
衡量随机变量相关性的方法主要有三种:pearson相关系数,spearman相关系数,kendall相关系数: 1. pearson相关系数,亦即皮尔逊相关系数 pearson相关系数用来 ...
- Final阶段基于spec评论作品
组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶 刘佳瑞 公冶令鑫 杨磊 刘欣 张宇 卢帝同 一.测试目标:拉格朗日2018——飞词 1.开始界面,只有一个开始游戏按钮,简约且醒目 ...
- ThinkPHP框架知识(比较全的知识)
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- 解决p4c安装时protobuf未定义引用的错误
安装好p4c的依赖之后,执行make -j2时出现以下问题: undefined references to `google::protobuf::internal::LogMessage::oper ...
- 为什么java的main方法必须是静态的
今天看类型信息时发现一个问题,不能再main方法中打印this关键字的信息,这时想起了之前的知识,不能再静态方法中调用this.理由很简单,this表示“这个对象”,也就是声明一个类的对象,然而静态方 ...
- python数据分析所需要了解的操作。
import pandas as pd data_forest_fires = pd.read_csv("data/forestfires.csv", encoding='gbk' ...
- 弟三周作业之VS2015
这周有个任务就是安装VS2015,然后进行简单的单元测试. 首先我上吴小勇同学给的MSDN官网(http://www.itellyou.cn/)下载VS2013, 然后装上后,在工具栏里,点击工具里的 ...
- ElasticSearch 2 (38) - 信息聚合系列之结束与思考
ElasticSearch 2 (38) - 信息聚合系列之结束与思考 摘要 版本 elasticsearch版本: elasticsearch-2.x 内容 本小节涵盖了许多基本理论以及很多深入的技 ...