tftp プロトコルを実装するサーバーであるアプリケーションを構築しています。tftp での ASCII 形式とバイナリ形式 (netascii と octect) の違いと、プロトコルの状態に応じてファイルを別の方法で読み取る方法を理解するのに苦労しています。
ASCII char は 1 バイトで表すことができることを知っています。そのため、ASCII モード (各文字 1 バイト) とバイナリ モード (生の 1 バイト) での読み取りの違いがわかりません。
バイナリ モード (tftp のオクテット) ではフラグ ios::binary を使用してファイルを読み取ることができ、ascii (tftp では netascii) ではフラグを使用せずにファイルを読み取ることができますが、これら 2 つの方法でファイルを読み取ることの違いは何なのか本当にわかりません (私はいつもバイトの配列を考え出す)。
誰かが私を理解するのを手伝ってくれるなら、本当に感謝します
tftp プロトコル仕様: http://www.rfc-editor.org/rfc/rfc1350.txt
私が理解していない部分はこれです:
現在、転送の 3 つのモードがサポートされています: netascii (これは、「Telnet プロトコル仕様」[3] で指定された変更を加えた、「情報交換のための米国標準コード」[1] で定義されている
ascii です。) 8 ビット ascii であることに注意してください。「netascii」という用語
は、このドキュメント全体でこの
特定のバージョンの ascii を意味するために使用されます。); オクテット (これは、このドキュメントの以前のバージョンの「バイナリ」モードを置き換えます。) 生の 8 ビット バイト。メール、
ファイルではなく netascii 文字がユーザーに送信されます。(メール
モードは時代遅れであり、実装または使用すべきではありません。) 追加の
モードは、協力するホストのペアによって定義できます。