gpt4 book ai didi

c++ - boost::asio::ip::tcp::socket::cancel 和 socket::close 之间有什么不同

转载 作者:行者123 更新时间:2023-11-30 00:58:21 26 4
gpt4 key购买 nike

根据 boost 文档,当 socket::close() 被调用时,异步发送、接收或连接操作将立即被取消,并以 boost::asio 完成: :error::operation_aborted 错误。

socket::cancel 导致所有未完成的异步连接、发送和接收操作立即完成,取消操作的处理程序将传递给 boost::asio::error::operation_aborted 错误。

它们之间有什么区别吗?

当我想完成一个套接字连接时,我应该调用哪个套接字,以便调用它们的回调处理程序并出现 boost::asio::error::operation_aborted 错误?

最佳答案

Is there some difference between them?

是的。 close() 方法关闭套接字,而 cancel() 方法取消未完成的异步操作。使用 cancel() 不会关闭套接字。

When I want to finish one socket connection, which one I should to call?

您应该使用cancel() 来停止任何未完成的异步操作。套接字将由其析构函数关闭。

关于c++ - boost::asio::ip::tcp::socket::cancel 和 socket::close 之间有什么不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426910/

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