我正在尝试通过 UDP 发送一个非常长的二进制整数(大约 200 位)。当我尝试使用 Array 的 pack 方法时,它会抱怨我要转换的字符串太大。
我会以错误的方式解决这个问题吗?
ruby-1.8.7-p352 :003 > [0b1101001010101101111010100101010011010101010110010101010101010010010101001010101010101011101010101010101111010101010101010101].pack('i')
RangeError: bignum too big to convert into `unsigned long'
from (irb):3:in `pack'
from (irb):3
这个数字应该代表一个 DNS 查询数据包(这是用于家庭作业;我们不允许使用任何 DNS 库)。