2008-10-24 463 views
4

我想寫一個C#應用程序連接到遠程登錄服務器並與服務器通信。我想知道一個telnet服務器如何向客戶端發送信息。我查看了Telnet RFC,並查看了來自服務器的傳入數據包,但仍有點困惑。有人能給我一個例子,說明服務器如何在telnet客戶端中移動光標,以及它如何改變字符的顏色? (一個例子是最讚賞)Telnet服務器如何與客戶端進行通信?

更新我

下面是一些附加的VT100資源:

  1. ANSI/VT100 Terminal Control
  2. vt100_codes_news.txt

更新II

有了大量的研究和時間,在這裏我發現了什麼:用C#編寫Telnet Programming with C#

+1

+1爲Telnet用C#編程鏈接 – sivabudh 2010-06-17 17:52:42

回答

7

移動光標並更改顏色不是由telnet協議完成的。

您的telnet客戶端正在模擬terminal,最有可能是VT-100變體。要移動光標並更改顏色,服務器會發送特定於正在模擬的終端類型(通過telnet協議協商發送哪一個終端類型)的轉義序列。

如果你不想要這些轉義序列,告訴服務器在telnet協議上談判你是一個「啞」終端應該就夠了。如果你想要它們(或者如果服務器假定每個人都有一個VT-100並且總是發送它們),你將不得不實現一個VT-100終端仿真器(或者至少足夠的它來放棄你不想要的東西)。

+0

該死的......打我吧。很好的答案,但不能說得更好。 +1 – Kev 2008-10-24 16:54:54

2

一個simple Google search揭示了許多開源的Telnet(和其他網絡協議)客戶端。您可以將源代碼下載到其中,並查看它們如何實現連接協商和命令。