Hallo,
ertsmal zu deinen Fragen:
1) Ja, das hast du richtig verstanden. push_back hängt das übergebene Element quasi einfach hinten an den vector ran.
2) Nutze dafür einfach die

-Function. Ist in der Referenz sicher ausreichend gut beschrieben.
Generell müsstest du aber den Zugriff auf den vector aus verschiedenen Threads synchronisieren, da bspw. push_back das interne Array verschieben kann (wenn der intern angeforderte Speicher zu knapp wird), während der andere Thread noch versucht auf ein ggf. nicht mehr vorhandenes Element zuzugreifen.
Die Funktion TCP_Server::Client_Accept_Thread ist zudem eine endlos-rekursive Funktion. Sie ruft sich also ständig selbst auf und returnt damit auch nichts. Das sorgt dafür, dass durch die ganzen rekursiven Aufrufe irgendwann das Limit für den Stack erreicht ist und dir dein Programm abschmiert. Besser dort eine while(true)-Schleife oder noch besser gleich mit einer Abbruchbedingung, da das Programm sicherlich auch mal sauber beedet werden soll (hoffe ich doch wenigstens!?).
Hoffe, dass ich helfen konnte

Mit freundlichen Grüßen
Jeoni
/Edit: Snow war schneller