0
先說我打電話async_connect
在新建tcp::socket
。在調用async_connect
的處理程序之前,我在同一個套接字上調用async_read/write
s。他們會等待連接或因爲套接字未連接而立即失敗?boost.asio async_write/async_connect之前完成
先說我打電話async_connect
在新建tcp::socket
。在調用async_connect
的處理程序之前,我在同一個套接字上調用async_read/write
s。他們會等待連接或因爲套接字未連接而立即失敗?boost.asio async_write/async_connect之前完成
由於async_connect
執行異步,您的方案有競爭條件 - 因此它可能偶爾工作或失敗,具體取決於時間。爲了開始異步。在套接字上的I/O,應該先等待async_connect
完成處理程序 - 就像Asio文檔中所述。
這就是說,你可以設計一個接受異步的類。作爲函數的操作,將它們存儲在一個隊列中,並且以正確的順序在內部鏈接/調用它們。