AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1545899
Accepted
a3nm
a3nm
Asked: 2020-04-27 05:53:59 +0800 CST2020-04-27 05:53:59 +0800 CST 2020-04-27 05:53:59 +0800 CST

为什么当我按回车时 telnet 会发送 CRLF?

  • 772

在我的系统 (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/telnetrcor ~/.telnetrc。此外,相比之下,在我的系统上,netcat(当用作客户端时)将换行符作为 LF ( \n) 发送,除非-C使用该选项。)

telnet newlines
  • 1 1 个回答
  • 3612 Views

1 个回答

  • Voted
  1. Best Answer
    Kamil Maciorowski
    2020-04-27T06:46:22+08:002020-04-27T06:46:22+08:00

    看看Telnet 协议规范是怎么说的[强调我的]:

    定义的序列“CR LF”将导致 NVT 位于下一个打印行的左边距(例如,序列“LF CR”)。然而,许多系统和终端并没有独立处理 CR 和 LF,并且必须付出一些努力来模拟它们的效果。(例如,某些终端没有独立于 LF 的 CR,但在此类终端上,可以通过退格来模拟 CR。)因此,必须将序列“CR LF”视为单个“新行”字符,并在他们打算联合行动时使用;在实际需要单独回车的情况下,必须使用序列“CR NUL”; 并且在其他情况下必须避免使用 CR 字符。该规则向必须决定是否执行“换行”功能或多退格的系统提供保证,即 TELNET 流包含允许理性决定的 CR 后面的字符。

    • crlf标志集表示 CR 符合“预期 CR LF 组合操作”的条件。
    • 未crlf设置标志表示 CR 表示“实际上只需要回车”。

    但是在您的情况下,输入(来自 的输出)根本echo a不包含 CR 。它包含了根据“CR LF 联合行动意图”翻译为“CR LF”的 LF。该标志不适用,因为输入流中没有 CR。

    提供实际包含 CR 的输入:

    printf '\r' | telnet localhost 3334
    

    并且接收器将获得“CR LF”或“CR NUL”,具体取决于您的设置(in/etc/telnetrc或~/.telnetrc)。

    • 1

相关问题

  • 如何从 PowerShell Core 提示符安装 Telnet

  • 此服务器 IP + PORT 是否可以从我的服务器访问?(使用 Telnet)

  • PuTTY 在 TELNET 连接初始化开始时发送额外字符

  • 无法再闪存或连接到我的 Nucleo 板 (STM32F446)

  • 为什么只能从外部 ip 访问我机器上的部分端口?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve