Протокол Telnet, описаний в RFC 854 , включає в себе спосіб для відправки команд в смузі, що складається з характеру IAC , '\255'
з подальшим ще кілька байт. Ці команди можуть виконувати такі дії, як надсилання перерви у віддалений, але зазвичай вони використовуються для надсилання опцій .
Детальний огляд обміну, що надсилає опцію типу терміналу, можна знайти в Microsoft Q231866 .
Параметр розміру вікна описаний в RFC 1073 . Клієнт спочатку надсилає бажання надіслати NAWS
опцію. Якщо сервер відповідає DO NAWS
, клієнт може потім надіслати NAWS
параметри даних, які складаються з двох 16-бітних значень.
Приклад сеансу на терміналі стовпця 80 рядків:
telnet> set options
Will show option processing.
telnet> open localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SENT WILL NAWS
RCVD DO NAWS
SENT IAC SB NAWS 0 80 (80) 0 47 (47)
Протокол ssh описаний в RFC 4254 . Він складається з потоку повідомлень. Одне таке повідомлення "pty-req"
, яке запитує псевдотермінал, і його параметри включають висоту і ширину терміналу.
byte SSH_MSG_CHANNEL_REQUEST
uint32 recipient channel
string "pty-req"
boolean want_reply
string TERM environment variable value (e.g., vt100)
uint32 terminal width, characters (e.g., 80)
uint32 terminal height, rows (e.g., 24)
uint32 terminal width, pixels (e.g., 640)
uint32 terminal height, pixels (e.g., 480)
string encoded terminal modes
Клієнти telnet і ssh будуть приймати SIGWINCH
сигнал, тому якщо ви зміните розмір вікна терміналу під час сеансу, вони надішлють відповідне повідомлення серверу з новим розміром. Ssh надсилає повідомлення про зміну розміру вікна:
byte SSH_MSG_CHANNEL_REQUEST
uint32 recipient channel
string "window-change"
boolean FALSE
uint32 terminal width, columns
uint32 terminal height, rows
uint32 terminal width, pixels
uint32 terminal height, pixels
Window Dimension Change Message
? Я ніде не можу знайти приклад цього.