[SemiOT]Pack y unpack

Francesc Alted falted en pytables.org
Jue Sep 30 09:47:55 CEST 2004


Hola,

Lo que preguntas es muy genérico, pero intentaré darte alguna pista (aunque
a lo mejor no es lo que quieres).

Una vez tengas los datos en el buffer binario recibido en el socket del
programa C, simplemente has de definir una estructura parecida a esta:

typedef struct {int *i; char *s; float *f;} pstruct;

con los campos iguales a tu definición del struct en python. Después defines
un puntero a esta estructura:

pstruct *ps;

y le asignas la dirección de tu buffer:

ps = (pstruct *)buffer;

A partir de ahi, ya puedes acceder a la info:

int = ps->i; str = ps->s; float = ps->f;


Saludos,


A Dijous 30 Setembre 2004 06:43, Fernando Blat Peris va escriure:
> Hola a todos,
> 
> estoy utilizando el método pack del módulo Struct y SuperStruct para transformar
> a datos binarios unos structs que tengo en C.
> 
> La idea es formar en python un diccionario con unos campos equivalentes a los de
> C, binarizar dicho diccionario utilizando pack y enviarlo por un socket del
> programa en python para que sea leído por el socket de un programa en C.
> Utilizo lo de binarizar porque he leído que es la forma natural de transformar
> estructuras a C.
> 
> Bueno, la parte de python en el proceso está clara y no tengo problema, pero no
> me aclaro a leer los datos binarios en C ni con qué librería ni nada, de ahí a
> que esto sea un SemiOT.
> 
> Lo pregunto aquí por si alguien lo ha hecho alguna vez. Si molesta la pregunta
> no contestad y punto, que lo entenderé sin problema :)
> 
> Un saludo.

-- 
Francesc Alted




Más información sobre la lista de distribución Python-es