Se da specifica ti hanno indicato che devi creare il server su tcp, significa che ti dovrai smazzare sia la parte di rete che di protocollo...
Ovvero, sul server ti apri una porta (es. 1000) sulla quale resta in ascolto (vedi bind/listen)...
Ed ogni volta che un client si collega, lanci un thread dedicato che si occuperà di gestire quella particolare connessione... ed il server ritorna in ascolto sulla porta 1000.
Il modo in cui client e server comunicano, fa parte invece del protocollo... e li usa un po' di fantasia
Il client, invece, dovrà semplicemente collegare al server su quella determinata porta (vedi open/connect) e poi dovrà comunicare rispettando il protocollo che hai stabilito.