這個 patch 為 telnet 加了兩個參數: -i 與 -s。

-i 後面接時間值,如果使用者在這段時間沒有按下任何按鍵的話將送出字串。時間值的格式是 0~99,單位是分鐘;或是 0s~99s,單位是秒。預設值為 0,也就是取消 timer 的計時。

-s 後面接字串,每閒置一定時間後會依序送出字串內的字元,字串的長度限制為 100 字元(每個中文字包含兩個字元)。若是字串內有空白或是反斜線\等,請用引號括起來(單引號'或雙引號"都可以)。另外字串還會依 C 語言的反斜線跳脫順序(backslash escape sequences)來解釋反斜線後面的字元,以下列出幾個常用的:

  \ku up key
  \kd down key
  \kl left key
  \kr right key (這四個方向鍵的定義是我自己加的)
  \b backspace
  \n new line 換行
  \t tab
  \xxx 一個 ASCII code 是 xxx(八進位)的字元
  \\ blackslash \字元

-s 的預設值是 \0(null 字元)。而長度限制是因為我自己覺得 100 字元非常足夠,所以將陣列大小寫成固定值,如果覺得不夠可以加大 externs.h 內 #define idlestrmax 後面的值,或是將 idlestr[] 與 idlestrchar[] 的大小改為動態記憶體配置。

telnet 在連線時可以按下 Ctrl + ] 進入命令模式,此時可以用 set it (等於上面的 -i 參數) 與 set is (等於上面的 -s 參數) 更改時間與字串值,或是用 status 可以查詢現在各參數的狀態。如果一時忘了命令可以用 set ? 查詢。


example:

•telnet -i 10 -s '\0' somehost
設定每閒置 10 分鐘後送出 \0 (送出 null 字元便可以達到防呆目的,而且不會影響使用者任何的操作)

•telnet -i 50s -s 'I am idling\n'
設定每閒置 50 秒後依序送出括號內字元,即等於 I am idling 字串與 enter 鍵

•set it 10s
在命令模式下設定每 10sec 送出字串

•set is '\kl\kl\kl tu'
在命令模式下設定每閒置一定時間後依序送出三個左鍵,一個空白鍵,一個 t 與一個 u


回主頁 mail to artchiu