2013-02-22 52 views

回答

6

請執行下列操作的:

  • 上的插座調用socket::close()
  • 銷燬插座。請參閱this回答有關在銷燬過程中插座將如何關閉的詳細信息。

io_service::stop()只停止處理事件循環。工作仍然可以發佈到io_service,現有工作仍將保留在io_service中。因此,應用程序必須在它希望關閉的每個插座上調用socket::close()。請致電close()致電socket::shutdown(),以便攜式的優雅關閉。

可能值得花時間回顧一下Boost.Asio的HTTP Server 1示例。它使用connection_manager關閉所有連接。

+0

我正在看這個HTTP服務器1的例子... 我的問題是,它關閉套接字非常好。但是,在客戶端不需要做什麼?如同在客戶端對應的套接字對象一樣...我們是否也必須關閉該套接字? – 2018-02-05 04:33:35

+0

我已經在問題中發佈了這個查詢:https://stackoverflow.com/questions/48267854/asio-client-server-shutdown 你可能想看看這個問題以及更多的細節..謝謝你前進... – 2018-02-05 04:34:23