0

我有一个客户端应用程序能够连接到的 C++ 服务器,但在客户端连接后服务器崩溃。我通过注释掉它找到了导致它的代码并且它不再崩溃了。崩溃的部分是当它准备好读取时,我知道它不会超过这一点,因为它会在我从客户端发送消息之前崩溃。下面是读取的代码

try
{
    Logger::Log("Client Listing for message!");
    boost::asio::async_read(socket_,
        boost::asio::buffer(readMsg_.Data(), Message::header),
        boost::bind(&Client::HandleReadHeader, this,
        boost::asio::placeholders::error));
}
catch (std::exception& e)
{
    Logger::Log("Error: " + std::string(e.what()));
}

编辑: try-catch 语句没有捕获任何它只是崩溃的东西,所以我不确定出了什么问题

编辑*:我重新创建了 GUI 项目,女巫启动了这段代码,女巫是一个 dll。在我重新创建该项目后,除了解决方案中的不同项目外没有任何变化,它不再崩溃,但 throw-catch 语句现在捕获错误。

错误:网络连接被本地系统中止

不知道为什么它会中止

4

1 回答 1

0

崩溃只是项目中发生的一些奇怪的事情。我重新创建了该项目,但没有进行任何更改,并且崩溃停止和 try-catch 出现错误。错误是我删除了错误上的对象。然后我得到一个错误,因为本地系统关闭了连接,这是因为我忘记使用 shared_from_this() 而不是这个。

于 2013-08-11T14:12:44.553 回答