#include <array>
#include <iostream>
#include <boost/bind.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/asio.hpp>
#include <boost/thread.hpp>
#include <boost/system/system_error.hpp>
#include <boost/array.hpp>
//using namespace boost::asio;
const int max_length = 1024;
using Socket = boost::asio::ip::tcp::socket;
using SocketPtr = boost::shared_ptr<Socket>;
void rw_handler(SocketPtr sock)
{
try
{
for (;;)
{
boost::array<char, max_length> data_buffer;
boost::system::error_code error;
size_t bytes_transferred = sock->read_some(boost::asio::buffer(data_buffer), error);
if (error == boost::asio::error::eof)
{
break;
}
else if (error)
{
throw boost::system::system_error(error);
}
boost::asio::write(*sock, boost::asio::buffer(data_buffer, bytes_transferred));
}
}
catch (std::exception &e)
{
std::cerr << e
boost asio 同步阻塞
最新推荐文章于 2024-08-04 20:15:47 发布
该博客展示了如何使用Boost.Asio库创建一个简单的TCP同步服务器。通过`boost::asio::ip::tcp::acceptor`监听8888端口,每当有新的连接请求时,服务器会创建一个新的线程处理读写操作。读取客户端数据到缓冲区,然后将数据回写到客户端,直到出现EOF或发生错误。
摘要由CSDN通过智能技术生成