Если гипотетически, ваша программа будет переноситься между разными компиляторами, процессорами, и архитектурами, вам придется учесть множество нюансов:
1) простое копирование данных из пакета в структуру будет работать только в том случае, если на обеих машинах одинаковая архитектура процессора и один и тот же компилятор. В противном случае возможны нюансы с выравниванием полей в структуре (его надо отключить) и с порядком хранения байт (а тут уже начинаются проблемы)
2) разные архитектуры процессоров хранят целые числа с разным порядком байт. Чтобы не возникало конфликтов, принято по сети передавать данные в сетевом порядке байт. Для перевода в него есть семейства функций hton[s|l]/ntoh[s|l] . Без них вы будете наблюдать жуткие глюки.
Отсюда следует, что нельзя просто так (тм) копирнуть байты, пришедшие из сети куда-то там, нужно как минимум преобразовать их из сетевого порядка в хостовый (а при отсылке - из хостового в сетевой), и уже потом заталкивать в поля структуры (так что выравнивание можно и не отключать в таком случае).