-
Notifications
You must be signed in to change notification settings - Fork 5
/
index.html
160 lines (141 loc) · 9.46 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
120
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
158
159
160
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org" />
<title>LibVNCServer/LibVNCClient</title>
<link href="https://github.com/LibVNC/libvncserver/commits/master.atom" rel="alternate" title="Recent Commits to libvncserver:master" type="application/atom+xml" />
<link rel="stylesheet" type="text/css" href="default.css" title=
"default" />
</head>
<body>
<div id="container">
<div id="navbar">
<a href="index.html">Home</a> <a href=
"doc/html/index.html">API Documentation</a>
<a href=
"https://github.com/LibVNC/libvncserver/releases">Download</a>
<a href=
"https://github.com/LibVNC/libvncserver/issues">Support</a>
<a href=
"https://github.com/LibVNC/libvncserver">Development</a>
</div>
<div id="body">
<h1>Introduction</h1>
<div class="center" id="proj_desc">
<p><b>LibVNCServer/<wbr>LibVNCClient</b> are cross-platform C
libraries that allow you to easily implement VNC server or
client functionality in your program. If you don't know VNC
and what it's good for, read about it <a href=
"http://en.wikipedia.org/wiki/Virtual_Network_Computing">here</a>.<br />
<br />
See the <a href="doc/html/index.html">API documentation</a> for
a programming reference, the <a href="https://github.com/LibVNC/libvncserver#how-to-build">build howto</a>
for info on how to compile the libraries on your platform
and the <a href="https://github.com/LibVNC/libvncserver/blob/master/NEWS.md">project news</a> for a list of
recent changes.</p>
</div><br />
<p>To give an example, the simplest server looks like
this:<br />
<br /></p>
<pre class="code">
#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>
<p>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>
<p>Of course, this program only shows rubbish (whatever is in
the frame buffer you malloc'd) and does not do any error
checking at all, but it proves that writing a server can be
very easy.</p>
<p>For more in-depth information (especially if you want to
write a real <a href=
"doc/html/libvncserver_doc.html">server</a> or <a href=
"doc/html/libvncclient_doc.html">client</a>) look into the
provided <a href="doc/html/examples.html">examples</a> and
into the <a href="doc/html/index.html">documentation</a> for
LibVNCServer and LibVNCClient.</p><br />
<p><b>LibVNCServer and LibVNCClient are free software
licensed under the GPL</b>. If you use them, you <b>must</b>
adhere to the terms of the GPL.</p>
<p><b>Looking for help or want to participate in the active
development of LibVNCServer/LibVNCClient?</b> <a href="https://github.com/LibVNC/libvncserver/issues">File an issue</a>,
<a href="https://gitter.im/LibVNC/libvncserver">chat on Gitter</a> or subscribe to
the <a href="https://lists.sourceforge.net/lists/listinfo/libvncserver-common">libvncserver-common
mailing list</a>.</p>
<br><br>
<div class="center">
<script type='text/javascript' src='https://www.openhub.net/p/libvncserver/widgets/project_factoids_stats?format=js'></script>
<br/><br/><br/><br/>
<a href="https://github.com/LibVNC/libvncserver/actions/workflows/ci.yml"><img src="https://github.com/LibVNC/libvncserver/actions/workflows/ci.yml/badge.svg"/></a>
<a href="https://ci.appveyor.com/project/bk138/libvncserver/branch/master"><img src="https://ci.appveyor.com/api/projects/status/fao6m1md3q4g2bwn/branch/master?svg=true"/></a>
<br/>
</div>
<br/><br/>
<h1 id="projects-using">Projects using LibVNCServer/<wbr>LibVNCClient</h1>
<h2 id="libvncserver">LibVNCServer</h2>
<h3 id="x11vnc"><a href="https://github.com/LibVNC/x11vnc">x11vnc</a></h3>
<p><a href="http://www.karlrunge.com">Karl Runge</a> took Dscho’s first version of x11vnc, which was just a proof-of-concept that the library actually is usable, and turned it into a <a href="http://www.karlrunge.com/x11vnc/">fully fledged application</a> whose <a href="https://github.com/LibVNC/x11vnc">community version can nowadays be found on GitHub</a>.</p>
<h3 id="vnc-for-kde"><a href="http://www.tjansen.de/krfb">VNC for KDE</a></h3>
<p>Tim Jansen created KRFB, which is x11vnc integrated into KDE.</p>
<h3 id="arecibo-radio-telescope"><a href="http://alfa.naic.edu">Arecibo Radio Telescope</a></h3>
<p>Jeff Mock of the world’s largest radio telescope in Arecibo sent Dscho a nice <a href="/alfa-vnc.gif">screenshot</a>, describing his use of LibVNCServer:</p>
<blockquote>
<p>I’ve been using it for about 4 months on a project to build a new spectrometer for the radio telescope at Arecibo. Arecibo is the largest radio telescope in the world (305m!) in Puerto Rico. It has 10-times the collecting area of the second largest telescope in Effelsburg (maybe near you?).</p>
</blockquote>
<blockquote>
<p>The project is an embedded linux box that boots from a compact flash card. The root filesystem is only about 5MB. X wasn’t reasonable for such a small embedded system, but libvncserver was perfect. On the console we run graphical diagnostics that write directly to the frame buffer. It was a simple matter to hook this direct-framebuffer application to libvncserver. This way we can easily view the diagnostics for the spectrometer from the control room (or anyplace else for that matter).</p>
</blockquote>
<h3 id="lcd4linux"><a href="http://ssl.bulix.org/projects/lcd4linux/">LCD4Linux</a></h3>
<p>Small program that grabs information from the kernel and some subsystems and displays it on an external liquid crystal display. Michu let Dscho know that LCD4Linux has a VNC backend using LibVNCServer.</p>
<h3 id="kcemu"><a href="http://kcemu.sf.net">KCEmu</a></h3>
<p>KCemu is an emulator for the KC85 homecomputer series and other Z80 based microcomputers like Z1013, LC80, Polycomputer 880 and BIC A5105.</p>
<h3 id="android-vnc-server"><a href="http://code.google.com/p/android-vnc-server/">android-vnc-server</a></h3>
<p>android-vnc-server, a VNC server specifically for the Android mobile platform, forked from android-vnc project on google code. Unlike the original android-vnc, it doesn’t need a special keyboard driver built into the kernel.</p>
<h3 id="veency"><a href="http://cydia.saurik.com/info/veency/">Veency</a></h3>
<p>Veency is a VNC server for iPhones.</p>
<h3 id="gemsvnc"><a href="http://www.elilabs.com/~rj/gemsvnc/">GemsVNC</a></h3>
<p>An X11 vnc server for remote control, with some special features over x11vnc.</p>
<h3 id="vnc-for-netware"><a href="https://www.novell.com/coolsolutions/feature/431.html">VNC for Netware</a></h3>
<p>VNCSRV.NLM (the VNC Server NLM for NetWare) is a prototype release of a VNC server for NetWare based on LibVNCServer.</p>
<h3 id="virtualbox"><a href="https://www.virtualbox.org/">VirtualBox</a></h3>
<p>VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. VirtualBox uses LibVNCServer as its built-in VNC server.</p>
<h3 id="veyon"><a href="https://veyon.io">Veyon</a></h3>
<p>Veyon is a free and Open Source software for computer monitoring and classroom management supporting Linux and Windows.</p>
<h3 id="gnome-remote-desktop"><a href="https://wiki.gnome.org/Projects/Mutter/RemoteDesktop">GNOME Remote Desktop</a></h3>
<p>Remote desktop and screen casting in Wayland.</p>
<h2 id="libvncclient">LibVNCClient</h2>
<h3 id="aqemu"><a href="http://aqemu.sourceforge.net/">AQEMU</a></h3>
<p>AQEMU is a GUI for virtual machines using QEMU as the backend.</p>
<h3 id="remmina"><a href="https://remmina.org/">Remmina</a></h3>
<p>Use other desktops remotely, from a tiny screen or large monitors. Remmina uses LibVNCClient for its VNC plugin.</p>
<h3 id="krdc"><a href="http://kde.org/applications/internet/krdc/">KRDC</a></h3>
<p>KRDC is KDEs remote desktop client.</p>
<h3 id="vncpp"><a href="https://github.com/ocrespo/VNCpp">VNCpp</a></h3>
<p>A VNC viewer for Android powered by LibVNCClient.</p>
<h3 id="multivnc"><a href="https://github.com/bk138/multivnc">MultiVNC</a></h3>
<p>MultiVNC is a cross-platform wxWidgets VNC viewer based on LibVNCClient.</p>
<h3><a href="https://github.com/ZoneMinder/zoneminder">ZoneMinder</a></h3>
<p>ZoneMinder uses libvncclient to record desktops.</p>
<h3 id="AVNC"><a href="https://github.com/gujjwal00/avnc">AVNC</a></h3>
<p>AVNC is a modern VNC client for Android with many features.</p>
<div class="center">
<br/>
<strong><a href="https://github.com/LibVNC/LibVNC.github.io/issues">Create an issue</a> if your project is missing!</strong></div>
<br/> <br/>
</div>
</div>
</body>
</html>