提振.确保另一方接收到数据

Boost.Asio - Make sure that other party received data

本文关键字:数据 确保 另一方 提振      更新时间:2023-10-16

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

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

还是我的文件结束错误来自其他东西?

Asio是基于TCP和UDP套接字的独立于操作系统的抽象层。它们不能保证其他应用程序已经接收并处理了数据。您将需要在应用程序中包含此逻辑,您可能想要研究OSI模型。

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