いちばん失敗した人決定戦

telnetコマンドを、文字として認識させないためにIACを使うという事を知りました。

ここでふと疑問に思ったのですが、例えばECコマンドを使う場合、
EC(0xF7)を文字として認識させないためにIACを使うのだと思うのですが、
ASCIIコードでECに割り当てられているものを入力して、
サーバー側にECの文字を表示させても、
それはコマンドとして認識されないのでしょうか?

詳しい方からすればとんちんかんな質問かもしれませんが、
よろしくお願いします。

A 回答 (1件)

0xF7 というバイト自体が EC (Erase Character) を意味するのではなく、0xFF, 0xF7 という2バイトが揃って初めて EC の意味になります(※)。

0xFF が先行しない 0xF7 が単体でやってきても、それは EC の意味にはならず、0xF7 という文字そのものをあらわします。

※ RFC 854 の TELNET COMMAND STRUCTURE の節を参照。

ということで、0xF7 に相当する文字をタイプしたときのエコーバックは、やはり 0xF7 というバイトだけが飛んできます。0xFF がついていないので、ECとは認識されません。

ちなみに、0xFF に相当する文字を送信する場合は、IAC の後に 0xFF を送信します。すなわち、0xFF を2回 (0xFF, 0xFF)送信します。

参考URL:http://tools.ietf.org/rfc/rfc854.txt
    • good
    • 0
この回答へのお礼

jyufi_februaryさん、回答ありがとうございます

根本的な事がわかっていなかったようです、勉強になりました!

お礼日時:2008/11/07 23:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!