我正在构建一个应用程序,它是一个实现 tftp 协议的服务器。我很难理解 tftp 中 ASCII 格式和二进制格式(netascii 和 octect)之间的区别,以及我应该如何以不同的方式读取文件作为协议状态。
我知道一个 ASCII 字符可以用一个字节来表示。所以我不明白以 ascii 模式(每个字符 1 个字节)和二进制模式(1 个原始字节)读取有什么区别。
我可以使用标志 ios::binary 读取二进制模式(tftp 中的八位字节)的文件,而没有它的 ascii(tftp 中的 netascii),但我真的不明白以这两种方式读取文件有什么区别(我总是想出一个字节数组)。
如果有人可以帮助我理解,我将不胜感激
tftp协议规范:http ://www.rfc-editor.org/rfc/rfc1350.txt
我不明白的部分是这个:
当前支持三种传输模式:netascii(这是“美国信息交换标准代码”
[1] 中定义的 ascii,并在“Telnet 协议
规范”[3] 中指定了修改。)请注意,它是 8 位 ascii。本文档中将使用术语
“netascii”来表示此
特定版本的 ascii。);八位字节(这取代了本文档先前版本的“二进制”模式。)原始 8 位字节;邮件,
netascii 字符发送给用户而不是文件。(邮件
模式已过时,不应实施或使用。)其他
模式可以由成对的协作主机定义。