【发布时间】:2015-07-12 15:19:11
【问题描述】:
我正在使用 boost Asio 进行一些测试,但我不明白为什么 async_write 函数(witch 是 lambda 函数)的处理程序没有被调用。
#include <iostream>
#include <boost/asio.hpp>
using namespace boost::asio;
int main() {
io_service service;
std::string str = std::string("HTTP/1.1 200 OK\r\n ......");
ip::tcp::acceptor my_acceptor{ service, ip::tcp::endpoint(ip::tcp::v4(), 6767) };
ip::tcp::socket my_socket{ service };
my_acceptor.async_accept(my_socket, [&my_socket, str](boost::system::error_code) {
std::cout << "connected " << std::endl;
async_write(my_socket, boost::asio::buffer(str), [&my_socket](boost::system::error_code, std::size_t) {
std::cout << "Data written" << std::endl;
});
});
service.run();
}
“写入的数据”永远不会出现,并且消息不会发送到客户端 这段代码有什么问题?
【问题讨论】:
-
格式化和避免无用的手动内存管理是您的第一道防线
标签: c++11 boost-asio