Telnet服务器如何与客户端通信?

时间:2008-10-24 16:37:42

标签: c# terminal client-server telnet vt100

我想编写一个C#应用程序,它连接到telnet服务器并与服务器通信。我想知道telnet服务器如何向客户端发送信息。我查看(浏览过)Telnet RFC并查看从服务器进来的传入数据包,但仍然有点困惑。有人能给我一个例子,说明服务器如何在telnet客户端中移动光标以及它如何改变字符的颜色? (最值得赞赏的一个例子)

更新我

这是一些额外的VT100资源:

  1. ANSI/VT100 Terminal Control
  2. vt100_codes_news.txt
  3. 更新II

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

3 个答案:

答案 0 :(得分:7)

移动光标并更改颜色不是通过telnet协议完成的。

您的telnet客户端正在模拟terminal,很可能是VT-100变体。要移动光标并更改颜色,服务器会发送转义序列,特别是要模拟的终端类型(在telnet协议协商中发送哪一个)。

如果您不想要这些转义序列,告诉服务器telnet协议协商您是一个“哑”终端应该就够了。如果你想要它们(或者如果服务器假设每个人都有VT-100并且总是发送它们),你将必须实现VT-100终端模拟器(或者至少足以丢弃你不想要的东西)。 / p>

答案 1 :(得分:2)

A simple Google search揭示了许多用C#编写的开源Telnet(和其他网络协议)客户端。您可以将源代码下载到一个,看看它们如何实现连接协商和命令。

答案 2 :(得分:2)

关于处理光标和文本颜色等,现在谈论的是终端仿真。为此你需要一个图书馆。 This looks like a good place to start.