this is a exercise that implements a nio socket server/client.