我想编写一个C#应用程序,它连接到telnet服务器并与服务器通信。我想知道telnet服务器如何向客户端发送信息。我查看(浏览过)Telnet RFC并查看从服务器进来的传入数据包,但仍然有点困惑。有人能给我一个例子,说明服务器如何在telnet客户端中移动光标以及它如何改变字符的颜色? (最值得赞赏的一个例子)
更新我
这是一些额外的VT100资源:
更新II
经过大量的研究和时间,我在这里发现了:Telnet Programming with C#
答案 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.