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

更新我

这是一些额外的VT100资源:

  1. ANSI / VT100终端控制
  2. vt100_codes_news.txt
  3. 更新II

    经过大量的研究和时间,我发现了这里:使用C#进行Telnet编程

有帮助吗?

解决方案

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

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

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

其他提示

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

关于处理光标和文本颜色等,现在谈论的是终端仿真。为此你需要一个图书馆。 这看起来是个好地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top