加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Boost.Asio – 确保对方收到数据

发布时间:2020-12-16 07:34:36 所属栏目:百科 来源:网络整理
导读:我正在使用boost :: asio并将一个列表发送到客户端并在完成时关闭套接字.不知何故,客户端在收到所有内容之前有时会收到End of File错误. 我猜这与发送最后一个列表条目后关闭套接字的服务器有关.有没有一种简单的方法来解决这个async_send只有在数据成功发送
我正在使用boost :: asio并将一个列表发送到客户端并在完成时关闭套接字.不知何故,客户端在收到所有内容之前有时会收到End of File错误.

我猜这与发送最后一个列表条目后关闭套接字的服务器有关.有没有一种简单的方法来解决这个async_send只有在数据成功发送后调用处理程序?

或者我的文件结束错误来自其他东西?

解决方法

Boost.Asio是TCP和UDP套接字上独立于操作系统的抽象层.它们不保证其他应用程序已接收和处理数据.您需要在应用程序中包含此逻辑,您可能需要学习 OSI model.

如果在async_send()返回后立即关闭套接字,则这是不正确的.只有在调用完成处理程序后才应关闭它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读