Witam, mam serwer, on ma wektor klientów, każdy klient ma swoj obiekt, ktory go pinguje. Serwer tez "ma" klasy odpowiedzialne za wysylanie i nasluchiwanie. Nasluchiwanie jest jako nowy wątek, wysyłanie chyba nie musi. I mam pytanie, jezeli kazdy obiekt pingujący

Writer writer; 
//...
Ping * pinger = new Ping(client, writer);

może pisać, a one są w osobnych wątkach, to czy nie muszę zakładać jakiegoś muteksu zeby kilka obiektów na raz nie próbowało się dostać do writera (do socketa wysylajacego) ? Czy dobrze hierarchię klas skonstruowałem?

Server
-- Reader (w nowym wątku, nasłuchuje)
-- Writer
-- vector<Client*>
-- vector<Ping*> (tu właśnie nie wiem czy nie dać obiektu ping jako pole klasy Client)

Mam tu mały problem bo Reader musi przekazać np wiadomość "pong" do klasy Ping, która zaaktualizuje pole w kliencie odpowiedzialne za ping. Co prawda łatwo to zrobić za pomocą sygnałów i slotów ale co gdyby nie było tej funkcjonalności, zależy mi zeby mozna ta strukture przeniesc na kazdy jezyk czy framework.