c++ - QTcpServer 在关闭时崩溃

标签 c++ qt crash qtcpsocket qtcpserver

我正在为服务器编程,我为服务和管理器编程。当我使用 UI 服务器管理器停止服务器时,服务器调用一个名为“stopServer()”的函数,该函数包含以下内容:

qDebug() << "Stopping the server...";
// Clear the vector and free the memory by deleting pointers
qDebug() << clients.size();
for(int i=0;i<clients.size();i++){
    clients.get(i)->getSocket()->flush();
    clients.get(i)->getSocket()->close();
    clients.get(i)->getSocket()->disconnectFromHost();
    clients.get(i)->getSocket()->waitForDisconnected(3);
}
clients.destroy();
// Close the server
socket_server->close();
// Stop the handler
qDebug() << "Stopped.";

实际上,那个“clients”变量只是一个包含用户数据的 vector ,他为每个连接关闭QTcpSocket,然后清除clients变量并将其重置为0。

当我在服务器上有一个连接(UI 管理器作为该连接之一)时,我试图停止它,但它失败了。我删除了那个 vector 系统。它仍然无法正常工作,它没有给我任何错误,只是使应用程序崩溃。

如果您需要所有代码,请告诉我!

(抱歉我的英语不好...)

更新:如果我删除“socket_server->close()”,它可以正常工作。 更新#2:似乎是指针删除的问题。不知道....

已解决:天哪,我是个笨蛋! socket_server 是一个空指针...我刚刚修复了它,仅此而已!

最佳答案

天哪,我是个笨蛋! socket_server 是一个空指针...我刚刚修复了它,仅此而已!

关于c++ - QTcpServer 在关闭时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280436/

相关文章:

c++ - QRegularExpression通配符匹配

qt - 使用 CMake 检测 Qt5

c - 在 Windows 上诊断 C 应用程序崩溃的工具/技术

c++ - GetAdaptersInfo 崩溃

c++ - 以 0 开头的整数数组元素显示垃圾输出

c++ - 设置 VS 调试器的字节顺序

c++ - wglMakeCurrent 在 x64 上失败

python - ScrollArea 中的自定义小部件正在被压缩!

c# - 保存和还原DataTable的最佳方法C#

c++ - std::unordered_set 通过引用与值返回类型