Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/09/2010, 08:32
Avatar de genuine_carlosV2
genuine_carlosV2
 
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Struct a traves de socket

La forma "guarra" de hacerlo sería haciendo un casting del struct a un array de bytes y enviar dicho array. En el cliente, sólo tienes que recoger este array y hacer de nuevo un casting a tu struct. Esto, sin embargo, conlleva varios problemas:
- En ambas máquinas tienes que tener el struct declarado de la misma forma
- Si la arquitectura de las máquinas (o las opciones del compilador) son diferentes, es probable que los campos del struct esten ordenados de formas diferentes dentro de cada máquina de modo que al realizar el casting inverso, muy probablemente, los datos pasen de una variable a otra y no te sirvan.
- Al realizar el envío, debes conocer el tamaño exacto del struct para no enviar de mas ni de menos

Todo esto es un engorro de modo que te recomiendo la forma "tradicional": Concatenar todos los datos con un delimitador que no pueda salir en ninguno de ellos y realizar la conversión inversa en el cliente.
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM