boost.asio中有async_read_some,async_accept,async_write_some,async_connect这几个函数,那么他们的回调函数都在同一线程吗?如果io_context在单线程运行,那么是的,测试如下。
class LIBTEST_BOOST_DLL TcpServer
{
public:
typedef boost::asio::ip::tcp::socket tcp_socket_t;
typedef boost::asio::ip::tcp::acceptor tcp_acceptor_t;
typedef boost::asio::ip::tcp::endpoint tcp_endpoint_t;
typedef boost::asio::io_context io_context_t;
TcpServer(io_context_t &io, const tcp_endpoint_t& endpoint);
void Accept();
void ReadHandler(tcp_socket_t *sock);
private:
tcp_acceptor_t acceptor_;
io_context_t *io_;
std::vector<char> buf_;
uint64_t cnt_ = 0;
};
class LIBTEST_BOOST_DLL TcpClient
{
public:
typedef boost::asio::ip::tcp::socket tcp_socket_t;
typedef boost::asio::ip::tcp::endpoint tcp_endpoint_t;
typedef boost::asio::io_context io_context_t;
TcpClient(io_context_t &io);
void Connect(const tcp_endpoint_t& endpoint);
void Write();
private:
tcp_socket_t sock_;
io_context_t *io_;
uint64_t cnt_ = 0;
};
TcpServer::TcpServer(io_context_t &io, const tcp_endpoint_t& endpoint)
:acce

最低0.47元/天 解锁文章
878

被折叠的 条评论
为什么被折叠?



