4

我想编写一个 C# 应用程序,它连接到 telnet 服务器并与服务器通信。我想知道 telnet 服务器如何向客户端发送信息。我已经查看(略读)了Telnet RFC并查看了从服务器传入的数据包,但仍然有点困惑。谁能给我一个例子,服务器如何在 telnet 客户端中移动光标以及它如何改变字符的颜色?(一个例子将不胜感激)

更新一

以下是一些额外的 VT100 资源:

  1. ANSI/VT100 终端控制
  2. vt100_codes_news.txt

更新二

经过大量研究和时间,我在这里发现了:Telnet Programming with C#

4

3 回答 3

7

移动光标和更改颜色不是由 telnet 协议完成的。

您的 telnet 客户端正在模拟终端,很可能是 VT-100 变体。为了移动光标和改变颜色,服务器发送特定于被模拟终端类型的转义序列(在 telnet 协议协商中发送)。

如果你不想要这些转义序列,在 telnet 协议协商中告诉服务器你是一个“哑”终端就足够了。如果你想要它们(或者如果服务器假设每个人都有一个 VT-100 并且总是发送它们)你将不得不实现一个 VT-100 终端仿真器(或者至少有足够的它来丢弃你不想要的东西)。

于 2008-10-24T16:53:07.420 回答
2

一个简单的 Google 搜索显示了许多用 C# 编写的开源 Telnet(和其他网络协议)客户端。您可以将源代码下载到其中一个,然后查看它们如何实现连接协商和命令。

于 2008-10-24T16:44:10.417 回答
2

关于处理光标和文本颜色等,现在您正在谈论终端仿真。为此,您将需要一个库。 这看起来是一个不错的起点。

于 2008-10-24T16:44:48.310 回答