1
我使用boost:asio::ip::tcp::acceptor在我的應用程序中創建服務器插座。我使用close
函數關閉了此接受者套接字,而不是stop
函數在io_service
中,但是隻有當我的應用程序關閉時,所有連接的客戶端套接字纔會關閉。我該如何解決這個問題? 謝謝!如何關閉所有客戶端插座連接的升壓asio服務器插座
我使用boost:asio::ip::tcp::acceptor在我的應用程序中創建服務器插座。我使用close
函數關閉了此接受者套接字,而不是stop
函數在io_service
中,但是隻有當我的應用程序關閉時,所有連接的客戶端套接字纔會關閉。我該如何解決這個問題? 謝謝!如何關閉所有客戶端插座連接的升壓asio服務器插座
請執行下列操作的:
socket::close()
。io_service::stop()
只停止處理事件循環。工作仍然可以發佈到io_service
,現有工作仍將保留在io_service
中。因此,應用程序必須在它希望關閉的每個插座上調用socket::close()
。請致電close()
致電socket::shutdown()
,以便攜式的優雅關閉。
可能值得花時間回顧一下Boost.Asio的HTTP Server 1示例。它使用connection_manager
關閉所有連接。
我正在看這個HTTP服務器1的例子... 我的問題是,它關閉套接字非常好。但是,在客戶端不需要做什麼?如同在客戶端對應的套接字對象一樣...我們是否也必須關閉該套接字? – 2018-02-05 04:33:35
我已經在問題中發佈了這個查詢:https://stackoverflow.com/questions/48267854/asio-client-server-shutdown 你可能想看看這個問題以及更多的細節..謝謝你前進... – 2018-02-05 04:34:23