Рефакторинг первого задания. Убран ненужный класс усложняющий понимание. Добавлено корректное закрытие клиентского сокета при разрыве соединения.