我正在尋找一種在使用telnetlib
時調整終端大小的方法。我使用Paramiko的resize_pty在SSH上取得了類似的效果,但我也需要支持telnet協議。這甚至可能(telnet甚至有控制流)?是否可以用telnetlib發送「resize pty」命令?
請注意,telnetlib不是一個要求 - 如果有更好的庫,我會很樂意使用它。
更新(更多背景信息):我正在構建一個基於Web的界面,用於連接到網絡設備。前端使用JS/AJAX構建,它基本上只是將按鍵發送到後端並從中接收屏幕內容。後端是用Python編寫的,負責打開設備的SSH/Telnet會話,向其發送鍵擊並獲取輸出流,然後通過VT100虛擬終端(pyte)傳遞輸出流。虛擬屏幕的內容然後被髮回到前端。當用戶想要在瀏覽器中調整終端屏幕尺寸時,就會出現問題。通過SSH,我只需通過Paramiko發送resize_pty()
,然後調整pyte的虛擬終端屏幕大小。但是對於telnet,我無法找到適當的調整大小的功能,它會告訴設備它應該調整它的終端。這可能嗎?
能否詳細說明你在做什麼?你需要telnetlib來爲你處理某種帶有服務器輸出的僞終端,或者只是發送調整大小的終端請求給它? – 2012-07-30 08:07:52
@MichałGórny:我已經更新了這個問題,我希望現在更有意義...... :) – johndodo 2012-07-30 11:17:33
謝謝。我做了一些研究,當終端調整大小時,telnetd調試'td:recv suboption NAWS 0 97(97)0 26(26)'。可悲的是,我在'telnetlib'中看不到任何特定的選項來發送子選項,但我必須仔細看看協議。 – 2012-07-30 14:08:06