diff --git a/Src/Model/Network/TcpListener.cpp b/Src/Model/Network/TcpListener.cpp index bfd7a68bb324510413f2d82fe31fbd8dd5b8b285..0a04c53e8aa16117a47200580a6444ada286c816 100644 --- a/Src/Model/Network/TcpListener.cpp +++ b/Src/Model/Network/TcpListener.cpp @@ -11,7 +11,10 @@ void TcpListener::acceptConnection() while (this->hasPendingConnections()) { QTcpSocket *socket = this->nextPendingConnection(); - _sockets.push_back(socket); + _sockets.insert(socket); + QObject::connect(socket, &QTcpSocket::disconnected, [this, socket](){ + _sockets.erase(socket); + }); } } diff --git a/Src/Model/Network/TcpListener.h b/Src/Model/Network/TcpListener.h index 23461d936545721274d8be19722e7248c620f9cc..58a00ddf57553a163342c24e006f712129d8a9c1 100644 --- a/Src/Model/Network/TcpListener.h +++ b/Src/Model/Network/TcpListener.h @@ -8,7 +8,7 @@ #include "../TrackedComponents/pose/FishPose.h" -#include <vector> +#include <unordered_set> #include <chrono> class TcpListener : public QTcpServer @@ -27,5 +27,5 @@ public slots: std::chrono::system_clock::time_point ts); private: - std::vector<QTcpSocket *> _sockets; + std::unordered_set<QTcpSocket *> _sockets; };