Спасибо.
To vesago:
А это из исходников linux или чего другого?
Вы можите выложить исходников побольше, например (__reverse(total_len)

, конечно если это не комерческая инфа.
Я например думаю сделать IP заголовок через union, навскидку например так:
Код
tupdef union{
uint8 raw_data[2000];
//---------------------------------
struct{
uint8 ip_header;
uint8 tos;
……
}IP;
//--------------------------------
struct{
uint8 shift[32]; //пропускаем IP заголовок
uint16 PORT_surce;
uint16 PORT_distenation;
……
}TCP;
//----------------------------------
struct{
uint8 shift[32]; //пропускаем IP заголовок
……
}UDP;
}IP_FRAME;
Тогда обращения будут выглядеть так:
IP_FRAME ip_frame;
Ip_frame.IP. header=0x45;
Ip_frame.TCP. PORT_surce =0x0080;
Ну и т.д.
Как вам такой подход? Какие есть замечания?
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!