index.html 9.85 KB
Newer Older
dscho's avatar
dscho committed
1 2 3
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
dscho's avatar
dscho committed
4
    <title>LibVNCServer/LibVNCClient</title>
dscho's avatar
dscho committed
5 6 7
  </head>

  <body>
dscho's avatar
dscho committed
8
    <h1>LibVNCServer/LibVNCClient</h1>
dscho's avatar
dscho committed
9 10

<br>
11

dscho's avatar
dscho committed
12
    If you have problems updating with CVS, here is a <a href=LibVNCServer-0.8pre.tar.gz>preliminary version</a>. If you are looking for more information
13 14 15
    on Karl's wonderful x11vnc, either download it
    <a href=http://sourceforge.net/project/showfiles.php?group_id=32584>here</a>, or
    look at <a href=http://www.karlrunge.com/x11vnc/>x11vnc's homepage</a>.
16 17
<p>

dscho's avatar
dscho committed
18
    <h2> News </h2>
19 20
    <strong>2005/09/29</strong> LibVNCServer now sports a brand new method to extend the protocol, thanks to Rohit Kumar! He also extended the library to support RFB 3.7. Furthermore, he contributed TightVNC file transfer protocol support to LibVNCServer!
<p>
dscho's avatar
dscho committed
21 22 23 24 25 26 27 28
    <strong>2005/05/25</strong> LibVNCClient now features ZRLE decoding!
<p>
    <strong>2005/05/15</strong> Another round of valgrinding completed. This time it is augmented by changes instigated by using Linus' sparse. In the course, the complete sources were converted to ANSI C.
<p>
    <strong>2005/05/07</strong> The member socketInitDone was renamed to socketState, and no longer contains a bool value. This allows us to quit a server cleanly from the event loop via rfbShutdownServer(), so that the structures can be cleaned up properly. This is demonstrated in examples/example.c.
<p>
    <strong>2005/01/21</strong> The function rfbMakeMaskFromAlphaSource() applies a Floyd-Steinberg dither to approximate a binary mask from a cursor with alpha channel. A demonstration can be found in test/cursortest.c.
<p>
dscho's avatar
dscho committed
29 30 31
    <strong>2005/01/16</strong> Renamed this page to reflect that LibVNCClient is actually very usable.
<p>
    <strong>2005/01/16</strong> Karl Runge has done awesome work to support cursors with alpha blending! You can try it with x11vnc as in CVS, or wait a few more days for x11vnc to be released officially!
32 33 34
<p>
    <strong>2005/01/15</strong> Happy new year! It begins with a new macro recorder based on LibVNCServer/LibVNCClient using perl as script language. The macro recorder is itself written in perl, and writes out perl scripts, acting as a VNC proxy, so that you can connect a vncviewer to it, and it records all your input, possibly looking for a certain button, image, word, etc. before continuing. I called it VisualNaCro, and it's in CVS.
<p>
dscho's avatar
dscho committed
35
    <strong>2004/12/20</strong> Just before christmas, a new release! Version 0.7 brings you the first non-beta of LibVNCServer...
36 37 38 39 40 41
<p>
    <strong>2004/12/02</strong> Finally MinGW32 support. I only had problems with a vncviewer which wouldn't connect to localhost: I use SDLvncviewer...
<p>
    <strong>2004/12/01</strong> LibVNCClient is getting better and better... Expect a very powerful client soon!
<p>
    <strong>2004/10/16</strong> LibVNCServer has automated test, thanks to LibVNCClient (included). It doesn't do ZRLE yet, and exposed some bugs, the only remaining of these is CoRRE (not sure yet if it's a bug in the client or the server).
dscho's avatar
dscho committed
42
<p>
43 44 45 46
    <strong>2004/09/14</strong> Added
    <a href=http://libvncserver.sourceforge.net/success.html>
    Success stories</a>.
<p>
dscho's avatar
dscho committed
47 48
    <strong>2004/09/07</strong> The API was cleaned up. The structures and functions now have a prefix (mostly "rfb", sometimes "zrle" or "sra") in order not to clutter the namespace, while the structure's members don't need such a prefix.
<p>
dscho's avatar
dscho committed
49
    <strong>2004/08/17</strong> I finally came around to fix mouse behaviour in QEMU's VNC frontend for Windows 98. Please find the patch <a href=qemu/>here</a>. If mouse behaves strangely, try to wiggle the pointer to a free spot on the desktop, hit Ctrl+Shift and release them. After that, the mouse should behave nicely.
dscho's avatar
dscho committed
50
<p>
dscho's avatar
dscho committed
51 52 53 54
    <strong>2004/06/07</strong> After silently being added almost a year ago, libvncclient's API was modified for real use, and three examples were added: ppmtest (a very simple demo), SDLvncviewer, and vnc2mpg (which lets you record your VNC session to a movie). Automated regression tests of the libraries are planned.
<p>
    <strong>2004/06/02</strong> <a href=http://www.karlrunge.com/x11vnc/>x11vnc</a>-0.6.1 was released! This reflects the long way the original, small example has gone, improved in many possible ways and having a broad user base.
<p>
dscho's avatar
dscho committed
55
    <strong>2004/05/29</strong> Some <a href=qemu/>patches</a> were created for <a href=http://fabrice.bellard.free.fr/qemu/>QEMU</a>, a FAST! emulator by Fabrice Bellard, to control those sessions with a vncviewer.
dscho's avatar
dscho committed
56
<p>
57 58
    <strong>2004/02/29</strong> LibVNCServer is listed as a project using <a href=http://valgrind.kde.org/>Valgrind</a>!
<p>
dscho's avatar
dscho committed
59 60 61 62
    <strong>2003/11/07</strong> Version 0.6 is out! x11vnc performance boosts! You no longer need a c++ compiler in order to have ZRLE coding! LinuxVNC was added (This is to the text console what x11vnc is to X11)!
<p>
    <strong>2003/02/21</strong> rdp2vnc is in rdesktop's CVS.
<p>
dscho's avatar
dscho committed
63 64 65 66 67
    <strong>2003/02/19</strong> A preliminary patch for rdesktop (CVS) to make
rdp2vnc, a translator from Windows Terminal Server's protocol to VNC's protocol,
is <a href=rdesktop-cvs+vnc.diff.gz>available</a>. It needs a new version of
libvncserver; try CVS until I release 0.6.
<p>
dscho's avatar
dscho committed
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
    <strong>2003/02/09</strong> Version 0.5 is out! Features include autoconf based configure, rpm package (YMMV), cleanup of directory structure, NEW x11vnc! ZRLE encoding! HTTP tunnelling through LibVNCServer's HTTP support! Many bug fixes!
<p>
    <strong>2002/07/28</strong> Version 0.4 is out! Biggest feature: NewFB encoding. Quite a few bugfixes also (Thanks to all!).
<p>
    <strong>2001/12/14</strong> A new version of
      <a href=http://prdownloads.sourceforge.net/libvncserver/rdesktop-1.1.0+vnc-0.2.tar.gz>rdesktop+vnc</a> is available!
      (Includes support for other platforms keyboard mapping with plain rdesktop!)
<p>
    <strong>2001/10/23</strong> Added a link to my homepage at the end.
<p>
    <strong>2001/10/18</strong> I released the rdp2vnc extensions as well as
    patches for general keyboard handling, working inside Xvnc and
    process_text2 (the famous "font:" error) to rdesktop. Please find it on
    the <a href=http://sourceforge.net/project/showfiles.php?group_id=32584>
      download page</a>.
<p>
    <strong>2001/10/13</strong> A snapshot of 
    <a href=http://sourceforge.net/project/showfiles.php?group_id=32584>
	LibVNCServer</a> and 
    <a href=http://sourceforge.net/project/showfiles.php?group_id=32584>
	RDP2VNC</a>
    is now available. You can also download the
    <a href=http://sourceforge.net/project/showfiles.php?group_id=32584>
	diff</a> against rdesktop-1.1.0.
    rdp2vnc also contains the patches for keyboards other than PC keyboards,
    and you can specify "-k fr" again.

<p><br>

    <h2> Introduction </h2>
    If you don't know VNC, have a look at
 <a href=http://www.uk.research.att.com/vnc/>the original VNC</a> or at
 <a href=http://www.tridiavnc.com/>Tridia VNC</a>, who also have commercial
 support for it.

<p>

    Now that you know what it is, maybe you want to make your own server.
    If this is not the case, you can ignore the rest of this page an go on
    surfing the internet.

<p>

    Now that you want to make a VNC server, that is, a server which speaks
    the RFB protocol, you can download this library from
    <a href=http://sf.net/projects/libvncserver/>sourceforge</a>.

<p>

    The simplest server looks like this:<br><br>

<pre>
dscho's avatar
dscho committed
120
#include &lt;rfb/rfb.h&gt;
dscho's avatar
dscho committed
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157

int main(int argc,char** argv)
{
  rfbScreenInfoPtr server=rfbGetScreen(&argc,argv,400,300,8,3,4);
  server->frameBuffer=malloc(400*300*4);
  rfbInitServer(server);
  rfbRunEventLoop(server,-1,FALSE);
  return(0);
}

</pre>

    This sample creates a 400x300 frame buffer in true colour. There are
    4 bytes per pixel, because 3 (which are only used instead of all 4) is
    such an odd number. Then the server is initialized and a blocking event
    loop is started.

<p>
    Of course, this program only shows rubbish (whatever is in the frame
    buffer you malloc'd), but it proves that writing a server can be
    very easy.

<p>
    For details (especially if you want to write a real server) look into the
    provided examples, pnmshow.c and example.c, and into the README. You find
    there documentation for much more complicated servers.

<p>
    Serious comments, suggestions, pizzas, etc. go to
    <a href=mailto:Johannes.Schindelin@RuBBISHgmx.de>me</a>
    (delete the RuBBISH).

<p>
    Here are some links:

<p>
    LibVNCServer  is an adapted
dscho's avatar
dscho committed
158
 <a href=http://www.redstonesoftware.com/vnc.html>OSXvnc-server</a> by
dscho's avatar
dscho committed
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
 <a href=mailto:mcguirk@incompleteness.net>Dan McGuirk</a>,
 which is in turn an adapted original
 <a href=http://www.uk.research.att.com/vnc/>Xvnc</a>.
<p>
 I use it to to drive a
<strong>Windows Terminal Server (RDP) to RFB converter</strong> with it.
 Much work has been done to make
 <a href=http://www.rdesktop.org/>rdesktop</a>
 a good X client to Windows Terminal Services (both NT and 2000, see
 <a href=http://bibl4.oru.se/projects/rdesktop/>rdesktop patches</a>).
 Previous work was done by <a href=mailto:tme23@cam.ac.uk>Tim Edmonds</a>
 who has set up such a converter named
 <a href=http://www-lce.eng.cam.ac.uk/~tme23/vdesktop/>vdesktop</a>
 including a single client server and a multi client server, rdp2vnc.
 Unfortunately he used the example code from rfbcounter, which can encode only
 RRE, which is not a good compression.
175 176 177
<p>
 <a href=http://libvncserver.sourceforge.net/success.html>Other people</a>
 have used this library as well.
dscho's avatar
dscho committed
178 179 180 181 182 183 184 185 186 187
<p>
 If you want to know about other of my projects, look at
 <a href=http://wrzx69.rz.uni-wuerzburg.de/~gene099/index.html>my homepage</a>.
    <hr>
    Project hosted on the fantastic
 <A href="http://sourceforge.net">
 <IMG src="http://sourceforge.net/sflogo.php?group_id=32584"
	width="88" height="31" border="0" alt="SourceForge Logo"></A><br>
<!-- Created: Thu Sep 27 12:27:41 MESZ 2001 -->
<!-- hhmts start -->
dscho's avatar
dscho committed
188
Last modified: Mon Jan 17 18:23:00 MESZ 2005
dscho's avatar
dscho committed
189 190 191
<!-- hhmts end -->
  </body>
</html>