2010/8/23 Horacio <horacio9...@gmail.com>:

> Ya lo he probado y me da una serie de chirimbolos ... desupés de los
> datos, a ver me saca cosas como esta...
>
> $python cliente6.py
> Escuche:  -2090377388  d d� @;{�X8{�̃
> �d��� � }�.N=�((}�p�鿿�{...@�鿀�4����'}�@;{�  X&}� 
> ha{...@���4�������p&}�̃`{�����N�j�)�u�
>
> El dato útil es -2090377388 pues hago un "atoi()" del envío que es un 
> char[256]

Para convertir datos, usa las funciones del módulo "struct". En
concreto, para tu caso concreto, struct.unpak. Para convertir un
entero de 32 bits sería:

  struct.unpack("i", datos)   # lee 32 bits y devuelve un entero con signo

Ojo: datos, en este caso, debería ser una cadena de 4 caracteres (a 8
bits cada uno: 32 bits en total). Las funciones de struct se quejan si
les pasas menos datos de los especificados en el formato, pero también
si les pasas más.

Ojo^2: puede ser que tengas que aplicar un modificador para cambiar el
orden de los bytes.

En resumen: lee la documentación del módulo :)
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a