gpt4 book ai didi

c++ - Boost::asio 套接字 - 如何干净地断开它们?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:50 24 4
gpt4 key购买 nike

我正在为我的服务器应用程序使用 boost 异步套接字。我创建了一个调用 boost 的 close() 的 disconnect() 函数,然后删除套接字(操作符删除)。 当从其中一个异步调用该函数时没关系。处理程序,但是当我从我的主代码库内部调用它时,整个应用程序在其中一个异步处理程序处崩溃。 如何在boost中很好地关闭一个socket?

最佳答案

确保只要可能使用它的处理程序存在,该对象就一直存在。

很可能在您调用 close 之后调用了使用此套接字的处理程序之一(因为它向处理程序报告错误)然后访问死指针...

通常,使用 boost::shared_ptrboost::enable_shared_from_this 并将其传递给处理程序可以轻松完成生命周期处理。请参阅 Boost.Asio 提供的大量示例。

一旦您熟悉了这项技术,您提出的问题对您来说就会显得微不足道。

关于c++ - Boost::asio 套接字 - 如何干净地断开它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4397597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com