Поскольку перечисления - это просто причудливые способы задания целых чисел, вы должны выбрать целочисленный тип, достаточно большой для хранения всех значений перечисления. Обычно должно быть достаточно символа, и тогда нет проблем с сериализацией. Но я бы пошел на короткий или длинный вместо этого. При сериализации я бы использовал ntohs/htons
или ntohl/htonl
(см. Их справочные страницы), чтобы всегда убедиться, что сериализация выполняется в сетевом порядке байтов, а десериализация - в порядке байтов хоста.