Как я могу рисовать на интерфейсе telnet, используя ncurses ..? - PullRequest
3 голосов
/ 06 января 2012

Я пишу небольшую грязь в рубине, где мне нужно текстовое поле и пункты меню (TUI). Клиент подключается к этому приложению через telnet, я пытался использовать NCurses, но не могу понять, как он может обращаться к IO, который является сокетом ... Есть ли какой-нибудь возможный способ, которым я мог бы разработать свои собственные текстовые поля и виджеты меню, Я пытался посмотреть коды выхода терминала ANSI VT-100. Можно написать какой-нибудь цветной текст, вот и все ... возможно ли даже создание интерфейсов, управляемых событиями, со стандартным приложением telnet.

Ответы [ 2 ]

2 голосов
/ 06 января 2012

Было бы проще написать обычный скрипт ncurses / ruby ​​и направить его в сокет.

Например.хостинг vi на порту

откройте терминал и выполните их как root

mkfifo ncpipe

nc -l -p 800 0<ncpipe |  vi   1>ncpipe 

это приложение хостов vi на порту 800 откроет другой терминал

telnet 127.0.0.1 800

Вы можете заменитьvi с вашей программой ncurses.

Примечание: это очень простой пример, потому что nc обрабатывает только одно входящее соединение, а затем завершается.Вам понадобится другая серверная программа типа "socat"

1 голос
/ 08 января 2012

NCurses не понимает, как записывать в IO :: Socket, так как он предназначен для записи в STDOUT, поэтому единственный оставшийся путь - это управляющие коды ANSI, которые также запрашивают переключение telnet из линейного режима в символьный режим по желанию с использованием ANSI и VT-100.Коды Escape помогут в разработке виджета текстового поля и т. Д.

1002 *http://ascii -table.com / ansi-escape-sequence-vt-100.php # Для цвета

http://www.faqs.org/rfcs/np.html#TELNET # для других модификаций.

...