Estoy tratando de enviar una serie de bytes binarios a través de un socket, para cumplir con un estándar particular que utiliza mi empresa. Nadie en mi compañía ha usado Ruby para esto antes, pero en otros idiomas, envían los datos a través de un byte a la vez (generalmente con algún tipo de método de "paquete").¿Cómo maneja Ruby bytes/binary?
No puedo encontrar todos modos para crear binarios sobre la marcha, o crear bytes en absoluto (lo más cerca que puedo encontrarlo es cómo convertir una cadena en los bytes que representan sus caracteres).
Sé que puede decir algo como:
@ var = 0b101010101
Pero ¿cómo iba a convertir una cadena de la forma "101010101" o el entero resultante creado cuando lo haga string.to_i (2) en un binario real. Si acabo de enviar la cadena a través de un socket, ¿no enviará el ASCII para "0" y "1" en lugar de los caracteres literales?
Seguramente hay ALGUNA manera de hacer esto de forma nativa en Ruby?
¿Por qué hay algunos "/" en binary_string? – why
Es muy posible que una cadena binaria tenga un byte con valor 0x2F (47). Esa es la codificación ASCII de "/" así que si "inspecciona" la cadena, Ruby generalmente imprimirá un "/". Lo mismo ocurre con cualquier personaje ASCII. Ruby en realidad no sabe si su cadena es una "cadena binaria", para Ruby, su cadena es básicamente una secuencia de bytes (excepto en 1.9 ellos agregaron cierta información de codificación). –
Gracias! me ayuda mucho – why