我理解在 Windows、Macintosh 和 Linux 中,换行符和/或回车符作为行分隔符的用法。但现在我正在编写一个通过 TCP 套接字接受用户文本输入的程序,我需要知道在解析输入的文本时应该将什么识别为“行尾”标记。
我只看到当用户在连接的终端上键入 RETURN 时发送换行符。是否会发送回车符?如果会,它们是否始终是 CRLF 对的一部分,或者某个终端程序是否会发送单独的 CR 来指示“用户刚刚按下了 RETURN”?
答案1
如果我是你,我会使用与其他使用 TCP 的常见 Internet 协议相同的标准。我最熟悉的是 HTTP 和 SMTP,它们都使用回车符/换行符对:
HTTP
根据 RFC超文本传输协议——HTTP/1.1
HTTP/1.1 将该序列定义
CR LF
为除实体主体之外的所有协议元素的行尾标记
邮件传输协议
在里面简单邮件传输协议的原始 RFCaline
定义为
以 结尾的 ASCII 字符序列
<CRLF>
。
新队
这换行符维基百科条目还有这样的说法:
大多数文本互联网协议(包括 HTTP、SMTP、FTP、IRC 和许多其他协议)要求在协议级别使用 ASCII CR+LF('\r\n',0x0D 0x0A),但建议宽容应用程序也识别单独的 LF('\n',0x0A)。