我想编写一个 C# 应用程序,它连接到 telnet 服务器并与服务器通信。我想知道 telnet 服务器如何向客户端发送信息。我已经查看(略读)了Telnet RFC并查看了从服务器传入的数据包,但仍然有点困惑。谁能给我一个例子,服务器如何在 telnet 客户端中移动光标以及它如何改变字符的颜色?(一个例子将不胜感激)
更新一
以下是一些额外的 VT100 资源:
更新二
经过大量研究和时间,我在这里发现了:Telnet Programming with C#
我想编写一个 C# 应用程序,它连接到 telnet 服务器并与服务器通信。我想知道 telnet 服务器如何向客户端发送信息。我已经查看(略读)了Telnet RFC并查看了从服务器传入的数据包,但仍然有点困惑。谁能给我一个例子,服务器如何在 telnet 客户端中移动光标以及它如何改变字符的颜色?(一个例子将不胜感激)
更新一
以下是一些额外的 VT100 资源:
更新二
经过大量研究和时间,我在这里发现了:Telnet Programming with C#
移动光标和更改颜色不是由 telnet 协议完成的。
您的 telnet 客户端正在模拟终端,很可能是 VT-100 变体。为了移动光标和改变颜色,服务器发送特定于被模拟终端类型的转义序列(在 telnet 协议协商中发送)。
如果你不想要这些转义序列,在 telnet 协议协商中告诉服务器你是一个“哑”终端就足够了。如果你想要它们(或者如果服务器假设每个人都有一个 VT-100 并且总是发送它们)你将不得不实现一个 VT-100 终端仿真器(或者至少有足够的它来丢弃你不想要的东西)。
一个简单的 Google 搜索显示了许多用 C# 编写的开源 Telnet(和其他网络协议)客户端。您可以将源代码下载到其中一个,然后查看它们如何实现连接协商和命令。
关于处理光标和文本颜色等,现在您正在谈论终端仿真。为此,您将需要一个库。 这看起来是一个不错的起点。