1.命令和代碼
ECHO1
2.命令意義
*IACWILLECHO
命令發(fā)送者請(qǐng)求開始或確定將要開始回復(fù)接發(fā)送者發(fā)出的數(shù)據(jù)字符。
*IACWON'TECHO
命令發(fā)送者要求停止或拒絕開始回復(fù)接收到的數(shù)據(jù)字符。
*IACDOECHO
命令發(fā)送者要求接收方開始回復(fù)或確定接收方要回復(fù)收到的數(shù)據(jù)字符。
*IACDON'TECHO
命令發(fā)送者要求此命令的接收者不要開始或停止回復(fù)收到的數(shù)據(jù)字符。
3.默認(rèn)值
WON'TECHO,DON'TECHO是默認(rèn)值,也即不進(jìn)行回復(fù)。
4.選項(xiàng)產(chǎn)生的原因
NVT有一個(gè)顯示設(shè)備的鍵盤,在通常情況下,鍵盤的輸入會(huì)直接顯示到顯示設(shè)備上,在交互比較多的時(shí)候,對(duì)于要將字符到去進(jìn)行控制的遠(yuǎn)程進(jìn)程這是合適的方法。我們可以設(shè)想一下聊天室里的情況加以理解,在這種情況就需要用這個(gè)選項(xiàng),看起來象一個(gè)鍵盤控制兩個(gè)顯示設(shè)備。
5.選項(xiàng)描述
當(dāng)此選項(xiàng)有效時(shí),端終端需要將接收到的字符返回給發(fā)送者。此選項(xiàng)并不要求返回的和接收的完全一樣。當(dāng)未在echo選項(xiàng)狀態(tài)時(shí),接收者不返回?cái)?shù)據(jù)給發(fā)送者,當(dāng)然這不是說接收者就要給接收到的數(shù)據(jù)不加理會(huì)。
通常的連接是雙向的,在一個(gè)方向上的數(shù)據(jù)流與另一個(gè)方面上的數(shù)據(jù)流沒有什么關(guān)系。下面是五種可能出現(xiàn)的情況:
此選項(xiàng)提供了決定一端是否對(duì)另一端數(shù)據(jù)進(jìn)行返回。假如不對(duì)另一端進(jìn)行返回,那對(duì)自己進(jìn)行不進(jìn)行返回。
假如兩端的主機(jī)都進(jìn)行了echo狀態(tài),那會(huì)在連接上出現(xiàn)無限循環(huán)的狀態(tài),因此實(shí)現(xiàn)者在實(shí)現(xiàn)時(shí)要注重這種情況,一端返回的數(shù)據(jù),另一端不要再返回了。
雙方在建立連接的時(shí)候的默認(rèn)狀態(tài)時(shí)非echo狀態(tài)。
假如一方?jīng)Q定要返回對(duì)方發(fā)出的數(shù)據(jù),或希望對(duì)方這樣做,由它發(fā)出相應(yīng)的命令,并等待響應(yīng)。假如響應(yīng)被拒絕,則仍然保持非echo狀態(tài);假如對(duì)方接受了請(qǐng)求,則連接進(jìn)入echo狀態(tài),處于這樣的狀態(tài)下時(shí),任何一方都可以解除echo狀態(tài),因?yàn)檫B接是雙向的,因此不同方面的echo狀態(tài)應(yīng)該分別解除。
在實(shí)現(xiàn)時(shí)要遵守telnet協(xié)議中的循環(huán)防止規(guī)則。因?yàn)樵诓煌瑺顟B(tài)下的開關(guān)有時(shí)候會(huì)意義不清,因此要非凡注重相應(yīng)開關(guān)所在的狀態(tài)。例如一方以WILLECHO響應(yīng)了DOECHO,則在DOECHO之后的所有字符均被返回,這一條無論是接收方還是發(fā)送方都應(yīng)該牢記。
光是echo選項(xiàng)還不足以讓遠(yuǎn)程計(jì)算機(jī)理解是在終端上輸入的字符,因此要使用SUPPRESS-GOAHEAD選項(xiàng)進(jìn)行相應(yīng)的處理。
6.例子
下面是一個(gè)稱為UHOST的簡(jiǎn)單實(shí)現(xiàn)。其中用于非echo的值小于用于表示echo的值。對(duì)于每個(gè)用戶終端,UHOST保留三個(gè)狀態(tài)位,是否對(duì)自己進(jìn)行echo,用戶是否希望在echo狀態(tài)下工作,終端連接到服務(wù)器上時(shí)是否處于echo狀態(tài)下,這三位我們稱為P(物理),D(希望)和A(實(shí)際)位。
當(dāng)終端撥號(hào)時(shí),設(shè)置P位和D位,而A位設(shè)置為非echo,P位和D位可以通過相應(yīng)的命令進(jìn)行人為設(shè)置。
當(dāng)UHOST和服務(wù)器的連接打開時(shí),假如P位和D位的最小值小于A位,那就向服務(wù)器發(fā)出DOECHO命令,假如收到WON'TECHO或WILLECHO響應(yīng),UHOST會(huì)設(shè)置A位為接收到以下三值的最小值:接收到的值,P位值,D位值。假如需要改變A位當(dāng)前的狀態(tài),UHOST要發(fā)出相應(yīng)的確定信息,假如不改變A位當(dāng)前的狀態(tài),則返回拒絕,表示自己不需要進(jìn)行改變。
假如在連接打開時(shí),UHOST終端改變了P位或D位的值,UHOST會(huì)重復(fù)上面的測(cè)試。連接關(guān)閉時(shí),UHOST會(huì)恢復(fù)A位值。因?yàn)閁HOST在連接打開時(shí)或用戶顯式改變ECHO狀態(tài)時(shí)未涉及使用DOECHO和DON'TECHO命令,大型主機(jī)會(huì)頻繁地進(jìn)行這樣的狀態(tài)切換。例如,當(dāng)line-at-a-time系統(tǒng)運(yùn)行時(shí),服務(wù)器會(huì)試圖通過WON'TECHO命令將用戶設(shè)置為本地ECHO狀態(tài);但是當(dāng)character-at-a-time系統(tǒng)運(yùn)行時(shí),服務(wù)器需要通過WILLECHO命令啟動(dòng)用戶的遠(yuǎn)程ECHO。而且,因?yàn)閁HOST不會(huì)發(fā)出WILLECHO命令,只會(huì)發(fā)出WON'TECHO命令,服務(wù)器主機(jī)會(huì)頻繁發(fā)出WILL和WON'T命令。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注