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