pourtant premièrement ce n'est pas une copie
C'en est une. push_back prend son paramètre par copie, pas par référence. De plus, std::vector copie (déplace en C++11) ses éléments lorsqu'il a besoin de plus de place en mémoire.
et deuxièmement je pensais que c'était possible car conseillé dans ce tutoriel
Il est en effet conseillé de stocker ses sockets dans un conteneur, mais il n'est pas dit qu'il faut en stocker des copies. Heureusement il y a d'autres moyens de faire
sf::TcpSocket est, comme le message d'erreur l'indique, non-copiable. En effet cela n'aurait aucun sens, techniquement tu ne peux pas dupliquer une socket (et donc potentiellement une connexion active avec un client... bref je te passe les détails, je pense que t'as saisi le truc) comme ça. Donc, il faut que tu évites de copier à tout va tes sf::TcpSocket, et pour ça tu peux utiliser des pointeurs par exemple (de préférence encapsulés dans la classe standard qui va bien : std::unique_ptr ou std::shared_ptr).