C++ Asio-确保另一方收到数据

C++ Asio-确保另一方收到数据,c++,boost,boost-asio,C++,Boost,Boost Asio,我正在使用boost::asio,并将列表发送到客户端,完成后关闭套接字。不知何故,客户机有时会在收到所有内容之前出现文件结束错误 我猜这与服务器在发送最后一个列表条目后立即关闭套接字有关。是否有一种简单的方法可以解决此异步发送问题,即仅在成功发送数据后调用处理程序 还是我的文件结束错误来自其他原因?Boost.Asio是TCP和UDP套接字上独立于操作系统的抽象层。它们不保证其他应用程序已接收并处理数据。您需要在应用程序中包含此逻辑,您可能需要研究 如果在async\u send()返回后立即

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

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


还是我的文件结束错误来自其他原因?

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


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

定义“完成时”。并向我们展示一些代码。在完成处理程序中关闭它怎么样?这就是我正在做的事情,但似乎不起作用。@jhasse在完成处理程序中关闭套接字在语义上与调用后关闭套接字相同。如果需要帮助,您应该在问题中发布代码。