在async_connect完成之前,boost.asio async_write / read

时间:2014-01-26 18:53:48

标签: boost boost-asio

首先说我在新构建的async_connect上拨打tcp::socket。在调用async_connect的处理程序之前,我在同一个套接字上调用async_read/write。他们会等待连接还是立即失败,因为套接字没有连接?

1 个答案:

答案 0 :(得分:0)

由于async_connect异步执行,因此您的方案具有竞争条件 - 因此它可能偶尔会工作或失败,具体取决于时间。为了开始异步。在套接字上的i / o,应该首先等待async_connect完成处理程序 - 就像在Asio文档中描述的那样。

那就是说,你可以设计一个接受异步的类。作为仿函数的操作,将它们存储在队列中,并以正确的顺序内部链接/调用它们。