QTcpServer在关闭时崩溃

时间:2012-11-08 00:05:51

标签: 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”变量只是一个包含用户数据的向量,他为每个连接关闭QTcpSocket,然后清理clients变量并将其重置为0.

当我在服务器上有一个连接(UI管理器作为其中一个连接)时,我试图阻止它,它就会失败。我删除了那个矢量系统。并且它仍然不起作用,它不会给我任何错误,只是崩溃了应用程序。

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

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

更新:如果我删除“socket_server-&gt; close()”它没有任何问题。 更新#2:似乎删除指针时出现问题。 IDK ....

解决:哦,我是个笨蛋! socket_server是一个空指针......我刚修好了,就是这样!

1 个答案:

答案 0 :(得分:0)

哦,我是个笨蛋! socket_server是一个空指针......我刚修好了,就是这样!