Se la connessione tra i client deve avvenire direttamente come hai detto, sì, il client deve avere un socket in ascolto.
Ma potresti anche comunicare attraverso il server. I messaggi dal client 1 al client 2 possono passare attraverso il server stesso.