Telnet伺服器接收字元處理流程

在南京看海發表於2016-07-07

最近在分析telnet伺服器端原始碼,現整理接收字元大致流程,以便後續回顧

 

1、伺服器main函式在telnetd.c中,處理完引數後,最終呼叫doit函式開啟輸入掃描

 

2、doit函式做以下幾件事

       1)首先呼叫getpty獲取虛擬終端,這很重要,後續的字元處理都有虛擬終端負責。

       2)啟動登入程式

       3)啟動telnet服務程式(呼叫telnet函式)

 

3、telnet函式是服務程式的主迴圈,掃描到輸入時,呼叫telrcv函式處理輸入內容

 

4、telrcv函式按照telnet標準協議對輸入字元做轉義等分析處理,並呼叫ptyflush將字元輸入虛擬終端

 

5、ptyflush函式通過write函式將輸入字元寫入虛擬終端,後續的協議執行就有虛擬終端來處理了。

 

後續關於虛擬終端如何執行telnet指令,再開新文章來分析。

 

相關文章