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