如何识别哪个客户端已关闭并在GUI中更新?

时间:2015-04-13 06:16:02

标签: qt client-server tcp-ip

我有一个服务器和一个客户端程序。我在客户端来时更新客户端数量。但是我无法显示关闭后哪个客户端已关闭。有谁能够帮我?我正在使用socketdescriptor来跟踪客户的存在。

我也有不同类型的客户,我正在使用线程概念。 当客户端到达时,继承QTcpServer的Server类接受连接并向其传递一个继承QTcpSocket的requesthandler类。在这里我调用线程类来定义不同类型的客户端。这里我调用一个函数来更新GUI中的客户端编号。 但是当我关闭连接时,我无法识别哪个客户端关闭,因此无法在客户端更新。 如何克服这个问题?

1 个答案:

答案 0 :(得分:1)

void QAbstractSocket::disconnected() [SIGNAL]

是要走的路。

如果在某些情况下客户端在同一台机器上,他们必须在服务器上识别(唯一的ID或应用程序类型)。

这可能是通过初始消息来完成的,并告诉服务器&#34;什么样的客户端连接。存储在QMap<QTcpSocket*, MyClientType>中,您可以确定客户端已断开连接并输入它。

欢呼声