是不是boost :: asio tcp socket关闭阻塞?

时间:2011-11-04 19:56:36

标签: boost asynchronous tcp boost-asio shutdown

boost :: asio TCP套接字接受/读/写都提供异步版本,但不是关闭。

在我的代码中,我只是调用socket.close(),并且大多数时候它工作正常。它触发了一个优雅的TCP关闭。

但有时候,close()只是在没有TCP关闭的情况下关闭套接字。因此,我必须调用shutdown()。但我不想阻止我的代码。 在boost:asio中是shutdown()阻塞吗? close()怎么样?是close()阻塞吗?

1 个答案:

答案 0 :(得分:3)

首先,Boost.Asio中的shutdown()close()调用调用基础BSD套接字实现。因此,关于Asio的shutdown()或close()调用没有任何“特殊”。

进一步阅读:

http://linux.die.net/man/3/shutdown http://linux.die.net/man/3/close

如果你是Windows:http://msdn.microsoft.com/en-us/library/windows/desktop/ms738547%28v=vs.85%29.aspx (阅读评论,显然记录的优雅关闭技术不能一直工作..)