如何从文件中读取二进制数据,并通过Ruby套接字将其传输到执行按位操作的客户端?

时间:2010-11-18 01:02:07

标签: c ruby tcp binary-data

我目前正在开发Ruby中的一个软件,用于从文件中读取二进制消息,然后通过TCP或UDP套接字将其传输到由我的同事编写的C程序。这个C程序必须能够对这些二进制消息执行按位操作,然后再将它们发送回我的程序以比较发送和接收的数据。

我目前的问题涉及Ruby似乎以字符串形式处理所有内容的方式。我对语言比较陌生,不确定我应该如何处理这个问题。

我主要担心的是确保在我们的二进制消息的内容在初始传输到C程序之前或期间没有发生任何变化。

非常感谢您提供的任何帮助。

谢谢, 马丁

1 个答案:

答案 0 :(得分:0)

Ruby的Class: IO是一个很好的起点。阅读第一部分,特别是"b"标志以及它与操作系统的关系。之后readread_bytes可能有用。

Re:“Ruby似乎将所有内容都视为字符串”。 Ruby将文件视为从磁盘读取的字节序列。这就是你告诉Ruby如何读取,处理和显示那些确定字节是文本行,来自某个数据库文件,图像还是声音文件的字节的字节。您可以使用面向数据的方法读取文本,然后转向并将数据视为字符串。您可以使用字符串读取方法读取“二进制”数据,然后将其聚合在内存中并将其视为字节。 Ruby只是我们用来操作字节的工具,但我们决定那些字节意味着什么。