Sono perplesso.

Dici di star creando una semplice chat che comunica su TCP.
sto sviluppando una semplice chat e per far questo utilizzo una connessione client server tramite socket tcp.
A me sembra tutto tranne una chat TCP: quella è una chat su file.

codice:
OutputStream os = new FileOutputStream("file_client.data");
Il client scrive dei dati su un file ed il server li legge da quel file. Le Socket (strumento utilizzato per la comunicazione TCP) tu non le stai nemmeno usando.

PS: non ammazzare le eccezioni, ma stampante lo StackTrace:
codice:
try {
   ...
} catch (Exception e) {
   e.printStackTrace();
}
Ciao.