elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Socket Raw
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Socket Raw  (Leído 1,555 veces)
bitBuffer

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Socket Raw
« en: 15 Enero 2013, 04:59 am »

Buenas, estoy tratando de crear Socket Raw, buscando codigo por Internet encontre varios pero no logro entender porque hacen lo siguiente:

char packetBuf[DIMENSION];
struct ip *IPheader = (struct ip *) packetBuf;

Porque se declara un vector char (tambien podria ser un puntero y despues darle dimension con malloc) y se hace esa conversion. PacketBuf apuntaria a posiciones que almacenarian char pero con esa conversion que apuntaria a posiciones (la cantidad es DIMENSION) que almacenarian tipo struct ip.


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Socket Raw
« Respuesta #1 en: 15 Enero 2013, 05:43 am »

No importa como desees hacerlo, solo debes TENER el espacio necesario para manipular la estructura equivalente.
en lugar de:

Código
  1. char packetBuf[DIMENSION];
  2. struct ip *IPheader = (struct ip *) packetBuf;
  3.  

En mi opinión seria mejor:

Código
  1. struct ip IPheader = {}; // C99
  2. 'El apuntador IPHeader pasa a ser:
  3. ... &IPHeader ...
  4.  

Esta es solo una opinión no se que demonios se hace con packetBuf, si pones el código involucrado creo que seria mejor,

Dulces Lunas!¡.


« Última modificación: 15 Enero 2013, 05:45 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
bitBuffer

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Socket Raw
« Respuesta #2 en: 15 Enero 2013, 06:10 am »

Es el codigo que se encuentra aca http://foro.elhacker.net/programacion_cc/enviar_paquetes_tcpip-t357637.0.html  .

Código
  1. struct ip *IPheader = (struct ip *) malloc(DIMENSION*sizeof(struct ip));

No seria lo mismo?.
Eso es lo que no me queda claro porque declara char si despues hace un cast a la estructura.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Socket Raw
« Respuesta #3 en: 15 Enero 2013, 06:20 am »

Se saca el checksum mas adelante de dos estructuras CONSECUTIVAS csum().

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No-Ip Y socket
Programación Visual Basic
n3ts4mura1 0 1,260 Último mensaje 15 Agosto 2006, 20:20 pm
por n3ts4mura1
Raw socket
Programación Visual Basic
yeikos 3 2,455 Último mensaje 28 Agosto 2007, 15:53 pm
por elmaro
Multithread Socket (Thread per Socket)not Complete « 1 2 »
Programación Visual Basic
ntaryl 12 8,938 Último mensaje 10 Febrero 2012, 18:42 pm
por ntaryl
Socket en Dev c++
Programación C/C++
davidzelaya 0 3,828 Último mensaje 13 Septiembre 2012, 06:45 am
por davidzelaya
¿Socket 1156 es compatible con el socket 1155?
Hardware
Karkass 8 17,371 Último mensaje 4 Marzo 2021, 04:32 am
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines