我正在寫一個基於「python cmd
like」的服務器模塊,它可以通過簡單的「telnet
」或「nc
」客戶端可以連接到服務器讀取來支持cli交互功能,例如自動完成或命令歷史記錄/在服務器端設置一些東西。如何處理python套接字中的按鍵?
搜索後,有很多模塊可以做「CMD」部分,如Python標準模塊「cmd
」或「ipython
」甚至vty模擬器,但是,我找不到一個模塊實際上可以直接綁定到套接字檢測諸如「tab
」密鑰或「control+c
」客戶端的擊鍵。他們大多數只是能夠處理行讀取,不適合自動完成與標籤按下或命令歷史與上/下按。
我認爲這個問題可以被簡化爲:
這有可能讀取插座擊鍵輸入無阻塞,然後處理該鍵輸入值以某種方式服務器端 - 例如ASCII碼+ 1,然後回到套接字顯示在客戶端?
謝謝你的幫助。
搜索後,telnet或ssh不能在純套接字層上工作,而是使用標準協議層,這在之前我被誤解了。 rfc855和rfc4253定義了telnet/ssh的工作方式,只是對於有人同樣的擔心,在我的情況下,我需要使用我自己的twisted或write layer。 非常感謝漢斯指出。 –