繁体   English   中英

提升ASIO网络时序问题

[英]Boost ASIO Network Timing Issue

我正在使用boost :: asio来实现网络编程并遇到计时问题。 当前,该问题最多出现在客户端上。

该协议最初由服务器向用户返回日期时间字符串开始,然后客户端读取它。 至此为止,它工作正常。 但是我还希望能够将命令写入服务器,然后由服务器对其进行处理。 为此,我使用io_service.post()函数,如下所示。

io_service.post(boost::bind()); // bounded function calls async_write() method. 

由于某些原因,尚未尝试创建套接字时,将在初始客户端/服务器通信之前进行写尝试。 而且我得到了错误的套接字描述符错误。

现在,io_service的run方法确实在另一个线程中被调用。

当我在post方法之前放置sleep(2)命令时,它工作正常。

有没有办法同步它,以便在执行任何已发布的调用之前创建套接字。

创建套接字并使用boost::asio建立连接时,可以定义在这些操作完成或失败时要调用的方法。 因此,您应该在成功回调中触发“已发布的呼叫”。

相关的方法和类是:

boost::asio::ip::tcp::resolver::async_resolve(...)
boost::asio::ip::tcp::socket::async_connect(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM