Dunque sembra che il thread del client non venga manco lanciato, se non esegue manco la prima istruzione.

Potresti provare a cambiare la classe ClientThread da

codice:
class ClientThread extends Thread
a

codice:
class ClientThread implements Runnable
e richiamarla in questo modo

codice:
 new Thread(new ClientThread(quel che è)).start()