Java Distributed Features Using Sockets and Threads