You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
9.6 KiB
190 lines
9.6 KiB
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<title>LibVNCServer/LibVNCClient</title>
|
|
</head>
|
|
|
|
<body>
|
|
<h1>LibVNCServer/LibVNCClient</h1>
|
|
|
|
<br>
|
|
|
|
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
|
|
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>.
|
|
<p>
|
|
|
|
<h2> News </h2>
|
|
<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>
|
|
<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!
|
|
<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>
|
|
<strong>2004/12/20</strong> Just before christmas, a new release! Version 0.7 brings you the first non-beta of LibVNCServer...
|
|
<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).
|
|
<p>
|
|
<strong>2004/09/14</strong> Added
|
|
<a href=http://libvncserver.sourceforge.net/success.html>
|
|
Success stories</a>.
|
|
<p>
|
|
<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>
|
|
<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.
|
|
<p>
|
|
<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>
|
|
<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.
|
|
<p>
|
|
<strong>2004/02/29</strong> LibVNCServer is listed as a project using <a href=http://valgrind.kde.org/>Valgrind</a>!
|
|
<p>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
#include <rfb/rfb.h>
|
|
|
|
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
|
|
<a href=http://www.redstonesoftware.com/vnc.html>OSXvnc-server</a> by
|
|
<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.
|
|
<p>
|
|
<a href=http://libvncserver.sourceforge.net/success.html>Other people</a>
|
|
have used this library as well.
|
|
<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 -->
|
|
Last modified: Mon Jan 17 18:23:00 MESZ 2005
|
|
<!-- hhmts end -->
|
|
</body>
|
|
</html>
|