Java Multithread Server Java server implemented with socket that can handle multiple clients at once, simultaneously using threads