Boost.Asio - 确保其他方收到数据

时间:2013-01-20 00:20:02

标签: c++ boost boost-asio

我正在使用boost :: asio并将一个列表发送到客户端并在完成时关闭套接字。不知何故,客户有时在收到所有内容之前收到文件结束错误。

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

或者我的文件结束错误来自其他地方?

1 个答案:

答案 0 :(得分:2)

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

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