Hola Leos,
Felíz navidad a ambos.
Lo más normal y seguro sería empaquetar un poco los datos, no enviar sólo el buffer binario, ya que cualquier error en la comunicación haría muy dificil la resincronización de los datos.
En cuanto a recomponer los datos, más allá de que obviamente hay que tener en cuenta el tamaño de cada elemento de la estructura en ambos lados y el endian utilizado por cada una de las partes, dependerá un poco del lenguaje de programación a utilizar.
Si utilizás C del lado de la PC, lo más sencillo podría ser directamente utilizar punteros para rellenar una estructura, aunque esto quedará sujeto a que los tipos de datos que se transmitan posean la mísma estructura interna (por ejemplo, un dato de tipo
double en C18 es de 32 bits (limitaciones del compilador) mientras que en un compilador C como el GCC, es de 64 bits por lo que no sólo son distintos en estructura sino también en tamaño). Sino siempre tendrá que haber una adaptación de por medio. En C++ también podrías utilizar punteros, aunque técnicamente no sería la práctica correcta en C++, ya que no sería una implementación orientada a objetos. Podrías crear una clase deserializer que utilice el array de datos para rellenar tu estructura.
En VB .NET podrías o bien crear una clase similar a la que he mencionado en C++ (recordemos que VB .NET está orientado a objetos también) y podrías apoyarte en la clase
BitConverterSaludos.