Кодирование, декодирование целого числа в массив символов

Обратите внимание, что это не домашняя работа, и я выполнил поиск перед началом новой темы. я получилСохранить int в массиве char?

Я искал ответ, но не получил удовлетворительного ответа в вышеупомянутой теме.

Вот мое требование: я хочу кодировать свои данные (скажем, целое число) в байтовом массиве, а затем передавать по сети, а затем декодировать на другом конце и обрабатывать их.

Вот часть кодирования:

const int MAX=5;
uint32_t a = 0xff00ffaa;
char byte_array[1024]; // this is the array to be transferred over the network
char buff[MAX]="";
sprintf(buff,"%4d",a);
memcpy(byte_array,buff,4);
// fill remaining stuff in the byte array and send it over the network

Вот часть декодирования:

const int MAX=5;
char buff[MAX]="";
strncat(buff,byte_array,4)

int i=atoi(buff);
// Work with i

Вот мои вопросы:

1) Является ли приведенный выше код переносимым? Я думаю, что это (пожалуйста, поправьте меня)

2) Теперь я хочу закодировать байтовый массив с 3 байтами (но размер целого числа равен 4), то есть, скажем, целое число хранит 0x00ffaabb, и я просто хочу, чтобы массив байтов имел ff int 0-й индекс aa в 1-м индексе и bb в 2-й указатель Как это сделать?

snprinf не похоже на работу или, может быть, я что-то упустил.

Человек, который внедрил любой сетевой протокол, может легко помочь мне. Я думаю, что логика декодирования все еще будет работать. (strncat(buff,byte_array,3) с последующимatoi вызов функции).

Вот что говорится в протоколе:

    --------+--------+--------+--------+------------------------------
    |Version|   3       byte    length |  Remaining stuff
    --------+--------+--------+--------+------------------------------

Версия - 1 байт, за которой следует 3-байтовая длина сообщения.

Я надеюсь, что смогу прояснить мою проблему

Ответы на вопрос(10)

Ваш ответ на вопрос