轉載時請註明出處和作者連絡方式:http://blog.csdn.net/mimepp
作者連絡方式:YU TAO <yut616 at sohu dot com>
關鍵字: microwindows, nanox, vncserver, libvncserver
nanox 在其 drivers 中整合 vncserver 的功能,,這裡記錄一下。
對應的代碼在:
src/drivers/vncserver.c
它將 psd->addr 作為 rfbScreen->frameBuffer,並在畫面有變化時,設定 MarkRect 表示對應的 Rect 需要被更新。
不過需要指出的是 libvncserver 是 GPL 的,對商業應用會有影響,需要注意。
運行抓圖如下:
demo 例子:ntetris
從 PC 上通過 web 方式訪問 vnc server:
彈出的認證對話方塊。
vnc 串連選項。
vnc 查看到的畫面。
demo運行log:
src/bin$ ./ntetris<br />Selected Visual:<br />Visual class: TrueColor (4)<br />id: 33<br />bits_per_rgb: 8<br />map_entries: 256<br />red_mask: 0x00ff0000<br />green_mask: 0x0000ff00<br />blue_mask: 0x000000ff<br />createfont: (height == 0) found builtin font System (0)<br />15/04/2010 14:24:15 Listening for VNC connections on TCP port 5900<br />15/04/2010 14:24:15 Listening for HTTP connections on TCP port 5800<br />15/04/2010 14:24:15 URL http://yutao-desktop:5800<br />createfont: (height == 0) found builtin font System (0)<br />15/04/2010 14:24:39 other clients:<br />15/04/2010 14:24:39 Client Protocol Version 3.8<br />15/04/2010 14:24:39 Protocol version sent 3.8, using 3.8<br />15/04/2010 14:24:39 rfbProcessClientSecurityType: executing handler for type 2<br />15/04/2010 14:24:42 Pixel format for client 192.168.1.10:<br />15/04/2010 14:24:42 32 bpp, depth 24, little endian<br />15/04/2010 14:24:42 true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0<br />15/04/2010 14:24:42 Using compression level 1 for client 192.168.1.10<br />15/04/2010 14:24:42 Using image quality level 6 for client 192.168.1.10<br />15/04/2010 14:24:42 Enabling X-style cursor updates for client 192.168.1.10<br />15/04/2010 14:24:42 Enabling full-color cursor updates for client 192.168.1.10<br />15/04/2010 14:24:42 Enabling cursor position updates for client 192.168.1.10<br />15/04/2010 14:24:42 Enabling LastRect protocol extension for client 192.168.1.10<br />15/04/2010 14:24:42 Using raw encoding for client 192.168.1.10<br />
vncviewer 串連的 log:
$ vncviewer 192.168.1.10<br />Connected to RFB server, using protocol version 3.8<br />Performing standard VNC authentication<br />Password:<br />Authentication successful<br />Desktop name "nano-X"<br />VNC server default format:<br />32 bits per pixel.<br />Least significant byte first in each pixel.<br />True colour: max red 65535 green 65535 blue 65535, shift red 0 green 255 blue 254<br />Using default colormap which is TrueColor. Pixel format:<br />32 bits per pixel.<br />Least significant byte first in each pixel.<br />True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0<br />Using shared memory PutImage<br />Same machine: preferring raw encoding<br />
vncviewer 畫面: