在我的系统 (Debian) 提供的 telnet 上,换行符 ( \n
) 似乎被翻译成 CRLF ( \r\n
)。具体来说,如果我运行,例如,netcat -l -p 3334 > file
并echo a | telnet localhost 3334
在另一个终端中运行,那么 do hexdump file
,我得到:
0000000 0d61 000a
0000003
这是a\r\n
小端序,即a
后跟CRLF。
然而,手册页telnet
说,关于crlf
切换:
如果为 TRUE,则回车将作为 <CR><LF> 发送。如果这是 FALSE,则回车将作为 <CR><NUL> 发送。此切换的初始值为 FALSE。
所以我希望看到回车作为 CR 发送,然后是 NUL。为什么这不是我观察的原因?
(请注意,我没有/etc/telnetrc
or ~/.telnetrc
。此外,相比之下,在我的系统上,netcat
(当用作客户端时)将换行符作为 LF ( \n
) 发送,除非-C
使用该选项。)