Ciao!
Quello che vuoi fare, in sostanza, è che un thread sia il client e un altro thread il server?
Per creare un thread, comunque, hai diversi modi..Uno di questi è creare una classe che implementi l'interfaccia Runnable, implementare all'interno del metodo "public void run()" tutta la logica del thread e poi, per avviarlo, fai così: "new Thread(new MyObject()).start()". Oppure crei direttamente una classe che estende da Thread, e, per avviarla, fai così: "new MyClass().start()".