January 2016
Beginner
512 pages
12h 35m
English
When a client terminates the connection, we have to delete the socket from the local m_clients list. Therefore, we have to connected the socket's disconnected() signal to:
void TcpServer::removeConnection()
{
if (QTcpSocket *con = qobject_cast<QTcpSocket*>(sender())) {
ui->log->insertPlainText(
QString("* Connection removed: %1, port %2\n")
.arg(con->peerAddress().toString())
.arg(QString::number(con->peerPort())));
m_clients.removeOne(con);
con->deleteLater();
ui->disconnectClients->setEnabled(!m_clients.isEmpty());
}
}After getting the socket that emitted the call through sender(), we post the information that a socket is being removed. Then, we remove the socket from m_clients and ...