telnet 连接收到的前 4 个字符串是什么?

What are the first 4 Strings received on telnet connection?

我正在为我的应用程序模拟 telnet 服务器。当我通过 telnet 连接到我的应用程序时(仅使用 putty 在本地连接)我总是在初始连接时收到这 4 个序列。

    ByteString(-1, -5, 31, -1, -5, 32, -1, -5, 24, -1, -5, 39, -1, -3, 1, -1, -5, 3, -1, -3, 3),
    ByteString(-1, -2, 31, -1, -2, 32, -1, -2, 24, -1, -2, 39, -1, -4, 1),
    ByteString(-1, -5, 36),
    ByteString(-1, -2, 36)

我想,如果我 return 将这些返回给客户端,连接就成功建立了。但我更想知道这些是什么以及我应该如何以及是否应该以不同的方式处理它们。

谢谢

它们是 Telnet 命令序列。

-1 -5 31 = IAC WILL NAWS
-1 -5 32 = IAC WILL TERMINAL-SPEED
-1 -5 24 = IAC WILL TERMINAL-TYPE
-1 -5 39 = IAC WILL NEW-ENVIRON
-1 -3 1  = IAC DO   ECHO
-1 -5 3  = IAC WILL SUPPRESS-GO-AHEAD
-1 -3 3  = IAC DO   SUPPRESS-GO-AHEAD
-1 -2 31 = IAC DONT NAWS
-1 -2 32 = IAC DONT TERMINAL-SPEED
-1 -2 24 = IAC DONT TERMINAL-TYPE
-1 -2 39 = IAC DONT NEW-ENVIRON
-1 -4 1  = IAC WONT ECHO
-1 -5 36 = IAC WILL ENVIRON
-1 -2 36 = IAC DONT ENVIRON

阅读RFC 854, RFC 855 and other related RFCs that define the Telnet protocol and its various options(有很多)。