我是否需要在调用async_write时考虑套接字的生命周期?

奇特

我这样调用asio :: async_write:

namespace asio = boost::asio;
using asio::ip::tcp;
using std::string;

shared_pointer<tcp::socket> tcp_socket_pointer;
string message;

...

void send() {
    asio::async_write(
        *tcp_socket_pointer,
        asio::buffer(message),
        boost::bind(
            &handle_send, // defined elsewhere
            asio::placeholders::error,
            asio::placeholders::bytes_transferred)
    );
}

现在,在我的代码中,有可能在调用sendhandle_send我传递的套接字之间被破坏,因为tcp_socket_pointer超出了范围。

合法吗 我的意思是,我是否需要确保引用的tcp :: socket一直持续到异步操作完成?我的直觉告诉我,asio :: async_write立即进行系统调用,因此我不必担心,但我最好问一下:)。

万一它不能按我期望的那样工作,将它tcp_socket_pointer作为参数传递给它handle_send,以确保它指向的tcp :: socket不会过期是个好主意吗?

您可以使用它,但是销毁销毁async_*电话时,该电话将被取消tcp::socket

您可能要保留一个shared_ptr到套接字,并将其绑定到完成处理程序,以便它保留一个引用,这确实是您所描述的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我是否需要在调用async_write时考虑套接字的生存期?

来自分类Dev

我是否需要在 onDestroy() 事件上调用 removeObserver 进行生命周期?

来自分类Dev

使用tcp套接字执行async_write时,何时调用处理程序?

来自分类Dev

Android 活动和片段生命周期 - 我是否需要在我的代码中使用所有方法?

来自分类Dev

调用startActivityForResult()时片段的生命周期

来自分类Dev

在同一套接字上同时调用Boost C ++ ASIO函数close()和async_write()是否有问题?

来自分类Dev

K8 Pod 生命周期:是否需要清理?

来自分类Dev

调用[WebMethod]时的ASPX页面生命周期

来自分类Dev

在内部模式下部署多个 API 管理阶段/生命周期时,是否需要单独的子网?

来自分类Dev

亚马逊S3 | 生命周期管理是否考虑上载日期或上次访问日期?

来自分类Dev

Google Glass Activity生命周期调用

来自分类Dev

生命周期:componentDillMount之前调用componentWillReceiveProps

来自分类Dev

android生命周期方法不调用

来自分类Dev

生命周期:componentDillMount之前调用componentWillReceiveProps

来自分类Dev

使用Redux时反应生命周期

来自分类Dev

将泛型类型绑定到需要生命周期的特征时未使用的类型参数

来自分类Dev

是否在Activity的生命周期方法之前同步调用Application.ActivityLifecycleCallbacks?

来自分类Dev

是否在UI线程上调用了Android.App.Application活动生命周期回调?

来自分类Dev

是否在Activity的生命周期方法之前同步调用Application.ActivityLifecycleCallbacks?

来自分类Dev

Angular 生命周期钩子是否在嵌套组件结构的每个组件上调用?

来自分类Dev

将std :: vector v传递给需要在相应实例的整个生命周期内访问v的类的ctor

来自分类Dev

与生命周期方法混淆-为什么我的API调用不返回数据?

来自分类Dev

调用并关闭Fragment后返回Activity不会改变我Activity的生命周期

来自分类Dev

在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

来自分类Dev

调用React.Component <props,state>的render()方法时,React生命周期方法不会触发

来自分类Dev

调用使用Redis-rs创建Redis连接的函数时,如何防止生命周期问题

来自分类Dev

我是否使用正确的生命周期管理器进行依赖项注入?

来自分类Dev

Eigen的矩阵是否可以在生命周期结束时删除动态分配的数据?

来自分类Dev

MarshalByRefObject生命周期

Related 相关文章

  1. 1

    我是否需要在调用async_write时考虑套接字的生存期?

  2. 2

    我是否需要在 onDestroy() 事件上调用 removeObserver 进行生命周期?

  3. 3

    使用tcp套接字执行async_write时,何时调用处理程序?

  4. 4

    Android 活动和片段生命周期 - 我是否需要在我的代码中使用所有方法?

  5. 5

    调用startActivityForResult()时片段的生命周期

  6. 6

    在同一套接字上同时调用Boost C ++ ASIO函数close()和async_write()是否有问题?

  7. 7

    K8 Pod 生命周期:是否需要清理?

  8. 8

    调用[WebMethod]时的ASPX页面生命周期

  9. 9

    在内部模式下部署多个 API 管理阶段/生命周期时,是否需要单独的子网?

  10. 10

    亚马逊S3 | 生命周期管理是否考虑上载日期或上次访问日期?

  11. 11

    Google Glass Activity生命周期调用

  12. 12

    生命周期:componentDillMount之前调用componentWillReceiveProps

  13. 13

    android生命周期方法不调用

  14. 14

    生命周期:componentDillMount之前调用componentWillReceiveProps

  15. 15

    使用Redux时反应生命周期

  16. 16

    将泛型类型绑定到需要生命周期的特征时未使用的类型参数

  17. 17

    是否在Activity的生命周期方法之前同步调用Application.ActivityLifecycleCallbacks?

  18. 18

    是否在UI线程上调用了Android.App.Application活动生命周期回调?

  19. 19

    是否在Activity的生命周期方法之前同步调用Application.ActivityLifecycleCallbacks?

  20. 20

    Angular 生命周期钩子是否在嵌套组件结构的每个组件上调用?

  21. 21

    将std :: vector v传递给需要在相应实例的整个生命周期内访问v的类的ctor

  22. 22

    与生命周期方法混淆-为什么我的API调用不返回数据?

  23. 23

    调用并关闭Fragment后返回Activity不会改变我Activity的生命周期

  24. 24

    在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

  25. 25

    调用React.Component <props,state>的render()方法时,React生命周期方法不会触发

  26. 26

    调用使用Redis-rs创建Redis连接的函数时,如何防止生命周期问题

  27. 27

    我是否使用正确的生命周期管理器进行依赖项注入?

  28. 28

    Eigen的矩阵是否可以在生命周期结束时删除动态分配的数据?

  29. 29

    MarshalByRefObject生命周期

热门标签

归档