我正在使用boost :: asio來實現網絡編程並運行到計時問題。這個問題目前與客戶最多。Boost ASIO網絡時序問題
協議最初由服務器向用戶返回日期時間字符串開始,客戶端讀取它。直到那部分它工作正常。但是我也想要的是能夠將命令寫入服務器,然後處理它們。爲了完成這個,我使用io_service.post()函數,如下所示。
io_service.post(boost::bind()); // bounded function calls async_write() method.
由於某種原因,寫入嘗試發生在初始客戶端/服務器通信之前,當套接字尚未創建時。我得到了錯誤的套接字描述符錯誤。
現在io_service的運行方法確實在另一個線程中調用。
當我在post方法之前放置sleep(2)命令時,它工作正常。
是否有辦法同步它,以便在執行任何發佈的調用之前創建套接字。
爲什麼不叫'async_write'從讀取的完成處理程序,或任何功能,即「初始客戶端/服務器通信」後,所謂的做?看看asio的例子。 –
爲什麼downvote ?.我的問題很簡單,那麼當我執行post命令時,它會在實際套接字實例設置之前執行? – Anonymous