首先说我在新构建的async_connect
上拨打tcp::socket
。在调用async_connect
的处理程序之前,我在同一个套接字上调用async_read/write
。他们会等待连接还是立即失败,因为套接字没有连接?
答案 0 :(得分:0)
由于async_connect
异步执行,因此您的方案具有竞争条件 - 因此它可能偶尔会工作或失败,具体取决于时间。为了开始异步。在套接字上的i / o,应该首先等待async_connect
完成处理程序 - 就像在Asio文档中描述的那样。
那就是说,你可以设计一个接受异步的类。作为仿函数的操作,将它们存储在队列中,并以正确的顺序内部链接/调用它们。