【发布时间】:2018-12-27 15:03:18
【问题描述】:
我最近不得不实现一个 FTP 客户端(在活动模式下)。我在 RFC 959 中发现的值得注意的一点是,PORT 命令的端口号应该分成 8 位。
一个例子:当在客户端使用端口 20000 时,这应该是二进制拆分。 20000 base 10 = 0100111000100000 base 2。这应该分为01001110和00100000,分别是。 78 和 32。这些数字应以明文数字形式发送。
标准选择这种方法有什么原因吗?从效率和易于调试的角度来看,这似乎很奇怪。
【问题讨论】:
-
“这些数字应以二进制编码数字发送” - 数字以纯文本形式发送。不像“二进制编码数字”。 - 无论如何,我认为您的问题在这里不是主题。我也怀疑这里的任何人都知道,为什么 RFC 959 的作者在 30 年前选择这种编码 - 编码实际上相当简单:
(port/256) + "," + (port%256)。 -
@MartinPrikryl 我知道这个实现,使用
port而不是应用一些数学会更有意义。