El retorno de los sockets

Arnau Sanchez arnau en ehas.org
Vie Jul 20 22:49:46 CEST 2007


Oscar Curero escribió:

> El problema concreto es que no sé como enviar un determinado dato: el valor 
> hexadecimal 40 (0x40). Según el manual de la aplicación servidor, el dato que 
> envío es de un (1) byte de longitud. Mi pregunta es: ¿Como tengo que enviar 
> el valor hexadecimal 40 (0x40) para que sólo ocupe 1 byte? Creo que se me 
> está escapando algo tan básico que no lo estoy viendo...

Un ordinal del tipo "carácter sin signo" (unsigned char: 0 <= i < 256) se puede 
pasar a cadena con la función "chr":

dato = chr(0x40)
print dato, len(dato)
# "@", 1
sck.write(dato)

Lo operación contraria es "ord":

print ord("a") # -> 97 (tipo int)
print chr(97) # -> "a" (tipo str)

http://docs.python.org/lib/built-in-funcs.html

Para un uso más genérico tienes el módulo struct (que a pesar de su nombre, no 
tiene nada que ver con los struct/record de otros lenguajes):

http://docs.python.org/lib/module-struct.html

Pregunta si tienes dudas con él

Saludos




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