abto Server for Windows SDK

ABTO Software provides a wide range of VNC-based solutions for corporate users and individual developers including our excellent AbtoVNC server. ABTO Software’s vnc-based remote desktop server offers a toolkit allowing to integrate VNC support into customers’ applications.
Our windows VNC server will provide you robust connection with the remote computer hosting the server and total control over its work. AbtoVNC Remote Screen server successfully operates with the most popular viewers, including original AbtoVNC viewers for Windows OS; Windows Mobile, and Android.


User Manual
VNCServerWrapper is VNC protocol based application which allows desktop sharing with remote partner.
HTTP tunneling. This feature might be useful in case the host LAN or computer is protected with firewall and direct access to non-HTTP external ports is prohibited.
Usage:
Direct connection
Accept remote client connection:

Configure the port which the remote client should connect to.

Set the password to protect the connection

Start VNC server (press button “Start Server”)

When the client is trying to connect to VNC server the user is prompted and

is queried to choose whether to allow connection or not.
In case there is no access to VNC host (firewall or NAT) it is possible to do reverse connection – the VNC server initites connection with client which runs in listening mode.
First of all the client IP address and port must be configured:

– go to tab direct connection
– specify listening client IP
– specify listening client port
When the client port and address are configured and server is started press the key “Add Listening Client”

NOTE: when the server is adding client no notification is prompted.

Connection via repeater
When both server and client are hidden behind NAT the only way to establish connection is using VNC repeater.
To establish session via repeater:

Go to tab “Connect via repeater”

check the “Enable connection via repeater” checkbox

specify the IP address of the host where the repeater resides

specify the repeater port (default value 5901)

the the session ID which should be agreed with remote partner

when the repeater parameters are configured press button “Connect to repeater”

HTTP Tunneling Feature

In order to use HTTP tunneling feature use context menu item Configuration -> HTTP Tunnel.
By checking/unchecking “Enable HTTP tunneling” checkbox it is possible to enable/disable HTTP tunneling feature.
The HTTP tunnel settings are:

HTTP tunnel server IP – the IP address of the host where the HTTP tunnel server resides

HTTP tunnel server port – the HTTP tunnel server port (default value 8888)

Local bypass in port – the local port which is used to redirect all data to VNC server

Local bypass out port – the local port which is used to redirect all data from VNC server to client
The repeater acts like a proxy, sitting in the middle between the server and viewer. All data for the session is passed through the repeater meaning that the viewer and server can both be behind a NAT firewall, without having to worry about forwarding ports or anything else (providing the repeater is visible to both viewer and server).

Remote desktop VNC server repeater mode connection

Main features of ABTO’s remote VNC server:

  • desktop sharing by accepting remote partner direct connection
  • desktop sharing using repeater
  • User-friendly interface
  • Complete compatibility with Windows 7
  • All API functions return type are changed from bool to int
  • Screen changes update is improved for Windows Server 2008 x64

Project consists of:

  • CSharp WinForm sample SDK (VNCWrapperApplic project) that contains vncwraplib.dll and winvnc.dll
  • VNCServerService it is a tusk tray application that start VNC Server with full right that gives it ability to work in a lock screen.
  • AbtoVNCService it is windows service for VNC Server

CSharp sample uses vncwraplib.dll which contains of such functions:

  • StartServer
  • StopServer
  • AddClient
  • Connect2Repeater
  • DisconnectAllClients
  • CheckRegistration
  • HttpTunnelConfiguration

Description

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
<summary> Set on the VNC server </summary>
<param name="Password"></param>
<param name="Port"></param>
<param name="Callback">Callback that returns one of the values of the ServerStatus</param>
<param name="isViewMode">If true start server in presentation mode</param>
<returns>returns one of the values of the ErrorCode and if the server starts successfully – the value of Error_None</returns>
[DllImport("vncwraplib.dll", CharSet = CharSet.Ansi)]
static extern int StartServer(string Password, int Port, ServerStatusCallback Callback, bool isViewMode);
<summary> stops the VNC server </summary>
<returns>returns one of the values of the ErrorCode</returns>
[DllImport("vncwraplib.dll")]
static extern int StopServer();
<summary>Adds the client to the VNC server when the viewer is in a listening mode Returns one of the values of the ErrorCode </summary>
<param name="password"></param>
<param name="port"></param>
<param name="callback">Callback that returns one of the values of the ServerStatus</param>
<param name="hostName"></param>
<param name="clientPort"></param>
<param name="isViewMode">If true start server in presentation mode</param>
<returns>Returns one of the values of the ErrorCode</returns>
[DllImport("vncwraplib.dll", CharSet = CharSet.Ansi)]
static extern int AddClient(string password, int port, ServerStatusCallback callback, string hostName, int clientPort, bool isViewMode);
<summary>The function that connects to repeater, returns one of the values of the ErrorCode</summary>
<param name="password"></param>
<param name="port"></param>
<param name="callback">Callback that returns one of the values of the ServerStatus</param>
<param name="hostName"></param>
<param name="repeaterPort"></param>
<param name="idCode">Session ID</param>
<param name="isViewMode">If true start server in presentation mode </param>
<returns></returns>
[DllImport("vncwraplib.dll", CharSet = CharSet.Ansi)]
static extern int Connect2Repeater(string password, int port, ServerStatusCallback callback, string hostName, int repeaterPort, string idCode, bool isViewMode);
<summary>Function that disconnect all clients from the server.</summary>
<returns>Returns one of the values of the ErrorCode</returns>
[DllImport("vncwraplib.dll")]
static extern int DisconnectAllClients();
<summary>Function is responsible for the registration SDK. You must use it in your program, if both username and password not specified the registration info is taken from file</summary>
<param name="UserName"></param>
<param name="Key"></param>
<returns>Returns one of the values of the ErrorCode</returns>
[DllImport("vncwraplib.dll", CharSet = CharSet.Ansi)]
static extern int CheckRegistration(string UserName, string Key);
<summary>Function that is used to configurate HTTP connections, Set HTTPtunnel configuration before server start</summary>
<param name="enable"></param>
<param name="serverIp"></param>
<param name="serverPort"></param>
<param name="bypassInPort"></param>
<param name="bypassOutPort"></param>
<returns></returns>
[DllImport("vncwraplib.dll", CharSet = CharSet.Ansi)]
static extern int HttpTunnelConfiguration(bool enable, string serverIp, int serverPort, int bypassInPort, int bypassOutPort);
enum ErrorCode
{
ERROR_NONE = 0,
ERROR_INVALID_VALUE = 1,
ERROR_CONNECTION_FAILED = 2,
ERROR_HTTP_TUNNEL_ERROR = 3,
ERROR_REQUEST_PENDING = 4,
ERROR_REQUEST_FAIL = 5,
ERROR_LICENSE_ERROR = 100
}
enum ServerStatus
{
ServerStopped = 0,
ClientConnecting,
ClientConnected,
ClientDisconnected,
}

Leave a Reply

Be the First to Comment!