我已经实现了一个TCP套接字客户端,该客户端连接到服务器并使用boost::asio::read()
和boost::asio::write()
调用。
有点像这样:
https://www.boost.org/doc/libs/1_63_0/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp
但是,在我的实现中,我根本没有调用boost::asio::io_service::run()
,并且套接字读取/写入仍然有效。在套接字客户端的上下文中该服务的目的是什么?我需要运行该服务吗?
答案 0 :(得分:4)
io_service::run
处理处理程序。处理程序由起作用的函数创建
以async_read
,async_write
之类的异步模式运行。这些函数立即返回。
处理程序已排队,函数返回,io_service::run
随后处理此处理程序。
在您的情况下,asio::read
没有创建任何处理程序,而是阻塞了函数,因此无需调用io_service::run
。