我試圖通過套接字發送一系列二進制字節,以符合我公司使用的特定標準。我公司以前沒有人使用過Ruby,但在其他語言中,他們一次只發送一個字節的數據(通常採用某種「包裝」方法)。Ruby如何處理字節/二進制文件?
我無法找到創建二進制文件,或創建字節(最接近我可以找到它如何將字符串轉換爲字節表示它的字符)。
我知道你可以這樣說:
@var = 0b101010101
但我怎麼轉換爲字符串的形式爲「101010101」,或當我做string.to_i創建的結果的整數(2 )變成一個實際的二進制。如果我只是將字符串發送到套接字上,那麼是不是隻發送「0」和「1」而不是文字字符的ASCII?
當然,有一些方法可以在Ruby本地執行此操作?
在這篇文章被編輯之前,它告訴我關於Array.pack。我不太明白這一點。如果我有: @bob = [「111111111」,「1000」,「1111」]或其他,然後我說: @ bob.unpack(b *),它顯示如下所示:「/ 377」這是正確的二進制文件嗎?這不僅僅是數組的第一個元素嗎?我將如何讓它做整個陣列? – Jenny 2009-07-28 13:05:37
Array.pack與String.unpack相反。在你的例子中,bob.pack('b *')只打包數組的第一個元素。你可能想要bob.pack('b * b * b *')。然而,這與你在問題中所要求的有所不同。 – kgiannakakis 2009-07-28 13:55:48