Что входит в состав X11 в X11VNC?

Я понимаю, что для удаленного отображения используется протокол RFB. X11VNC использует протокол RFB, так что любое средство просмотра VNC (на основе RFB) может просматривать дисплей.

Вопрос:

  1. Предположим, у меня есть, например, буфер кадра / dev / fb0. Я просто могу написать и запустить приложение, которое читает из фреймбуфера на основе протокола RFB. В этом случае чем отличается X11VNC от него.
  2. Кроме того, сам X11VNC предоставляет возможность использовать буфер сырых кадров. В чем разница между использованием / неиспользованием этой опции?

person DrunkenMaster    schedule 03.05.2017    source источник


Ответы (1)


x11vnc использует запросы X11 для получения обновлений экрана - через расширения Composite / Damage, если они доступны, или просто выполняя запросы GetImage через определенный интервал времени и сравнивая их с локальной копией. Вы хотите знать не только текущее изображение экрана в любой момент времени, но также, когда оно было изменено и какая область была изменена. Кроме того, с помощью x11vnc вы можете отслеживать отдельное окно, а не весь экран - в дополнение к только rfb-серверу имеется достаточное количество функций x11.

person Andrey Sidorov    schedule 03.05.2017
comment
Замечательно, спасибо Андрей. Использование X11vnc должно дать лучшую реализацию поиска различий, чем если бы я писал сам. RFB (чтение из Spec) как таковой не определяет, как получить разницу из буфера кадра, верно ?. - person DrunkenMaster; 04.05.2017
comment
rfb передает прямоугольники (возможно, сжатые) с новым содержимым того, что отображается на экране после обновления. E.i, когда вы вводите символ в терминале, rfb отправляет небольшой прямоугольник, например, клиент vnc, экран в местоположении [100, 100, 16x16] теперь является этим растровым изображением. Клиент обычно отвечает, хорошо, пожалуйста, пришлите мне следующее обновление, как только что-то изменится - person Andrey Sidorov; 04.05.2017
comment
Итак, в случае x11vnc + rfb, rfb получит помощь от x11, чтобы получить последнее обновление и потоки rfb (как вы сказали, сжатые) и отправить обратно клиенту. Сам rfb не определяет, какие изменения появились на экране. это верно? - person DrunkenMaster; 05.05.2017
comment
x11vnc действует как сервер rfb и клиент для сервера X11, здесь нет независимого rfb srvice, это просто имя протокола. x11vnc - это просто программа, которая взаимодействует с обоими протоколами (X11 и rfb) - person Andrey Sidorov; 05.05.2017
comment
Спасибо, Андрей. - person DrunkenMaster; 05.05.2017