Проверка клиент - сервера

Добрый день. Пишу небольшой сервер - клиент для локальной сети, функционал планирую добавлять по необходимости. Выкладываю код в надежде что более опытные кодеры подскажут как оптимизировать код или просто найдут крупные косяки, так же интересует реализация протоколов.... как лучше организовать передачу или просто общение между к-с. Есть 2 мысли организации протокола. 1 - отсылать пакеты и на другой стороне их парсить через конструкцию трэй - кэч (допустим 10 десериализаций, где десериализовал без ошибок то и обрабатываем дальше) и 2 мысль по этому поводу - в начале пакета добавлять идентификаторы команд и тупо парсить их на содержание тех или иных слов.
ссылка на проект https://dropmefiles.com/q8xp5

Добрый день. Лучше выложите на github больше шансов, что кто-то начнет его смотреть. А так нужно скачивать архив, распаковывать его, запускать IDE...