Ruby如何处理字节/二进制文件?

我试图在套接字上发送一系列二进制字节,以满足我公司使用的特定标准。 我公司之前没有人使用Ruby,但在其他语言中,他们一次发送一个字节的数据(通常使用某种“打包”方法)。

我无论如何都无法动态创建二进制文件,或者根本创建字节(最接近我可以找到它如何将字符串转换为表示字符的字节)。

我知道你可以说:

@var = 0b101010101

但是,如何将“101010101”forms的字符串转换为将string.to_i(2)生成的结果整数转换为实际二进制文件。 如果我只是通过套接字发送字符串,那么只是发送ASCII为“0”和“1”而不是文字字符?

当然有一些方法可以在Ruby中本地执行此操作吗?

不知道这是否足够,但您可以使用ruby中的整数索引位。

 n = 0b010101 n # => 21 n = 21 n[0] # => 1 n[1] # => 0 n[2] # => 1 n[3] # => 0 n[4] # => 1 n[5] # => 0 

看看String.unpack方法。 这是一个例子:

 str = "1010" str.unpack("cccc") => [49, 48, 49, 48] 

这将为您提供整数值。 有更多方法可以进行转换。