LINUX.ORG.RU

История изменений

Исправление beastie, (текущая версия) :

Если совсем грамотно, то поэлементно (ибо выравнивание структур никто не отменял):

data.a1 = ntohs((short)buf[0]);
data.a2 = buf[2];
/* ... */
Можно задействовать union, но опять таки не забываем про “network byte order”.

memcpy(&d.Bufer,&buf[24],2400);
_____________________^^

а вот тут у тебя imho какая-то бяка.

Исходная версия beastie, :

Если совсем грамотно, то поэлементно:

data.a1 = ntohs((short)buf[0]);
data.a2 = buf[2];
/* ... */
Можно задействовать union, но опять таки не забываем про “network byte order”.

memcpy(&d.Bufer,&buf[24],2400);
_____________________^^

а вот тут у тебя imho какая-то бяка.