我正在使用 boost::asio 来实现网络编程并遇到时间问题。目前,这个问题主要出在客户身上。
该协议最初由服务器向用户返回一个日期时间字符串开始,客户端读取它。直到那部分它工作正常。但我还想要的是能够将命令写入服务器然后处理它们。为此,我使用了 io_service.post() 函数,如下所示。
io_service.post(boost::bind()); // bounded function calls async_write() method.
由于某种原因,写入尝试发生在初始客户端/服务器通信之前,此时尚未创建套接字。我得到了错误的套接字描述符错误。
现在 io_service 的 run 方法确实在另一个线程中被调用。
当我在 post 方法之前放置一个 sleep(2) 命令时,它工作正常。
有没有办法同步这个,以便在执行任何发布的调用之前创建套接字。