信号に接続されている Qt5 に QLocalServer がありnewConnection()
ます。
その信号はこの関数を呼び出します:
QLocalSocket *clientConnection = m_server->nextPendingConnection();
clientID++; // <--- declared in header
clientConnection->setProperty("ID", QVariant(clientID));
connect(clientConnection, &QLocalSocket::disconnected, [clientConnection](){
qDebug() << "Client disconnected " << clientConnection->property("ID");
clientConnection->deleteLater();
});
2 つのクライアント (クライアント ID 1 とクライアント ID 2) が次々に接続し、その後クライアント 1 が切断された場合、ラムダ関数内で何が起こるでしょうか? つまり、2 番目のクライアントが接続した後、 の値はどうなりclientConnection
ますか? それは上書きされますか (そのためclientConnection
、最初のクライアントの はもう有効ではなくなります)、それともそれぞれに有効なデータがありますか?