Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#C# WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET WinRTVBScript

C# Examples

Async
Certificates
Email Object
Encryption
FTP
HTML-to-XML/Text
Gzip
HTTP
IMAP
MHT / HTML Email
PEM
PFX/P12
Java KeyStore (JKS)
POP3
RSA Encryption
MIME
SCP
SMTP
Socket/SSL/TLS
SSH Key
SSH
SFTP
Tar Archive
XML
XMP
Zip

More Examples...
ASN.1
PRNG
Amazon S3
Bounced Email
CSV
Diffie-Hellman
DKIM / DomainKey
NTLM

 

 

 

 

 

 

 

(C#) SSH Tunnel for Database Connection (such as ADO, ODBC, etc.)

Demonstrates how to create an SSH tunneling client in a background thread of your application. This makes it possible to SSH tunnel database connections without the need for separate software (such as PuTTY) to be running.

Chilkat .NET Downloads

Chilkat .NET Assemblies

Chilkat for Mono

Chilkat for Xamarin

//  Starting in v9.5.0.49, all Chilkat classes can be unlocked at once at the beginning of a program
//  by calling UnlockBundle.  It requires a Bundle unlock code.
Chilkat.Global chilkatGlob = new Chilkat.Global();
bool success = chilkatGlob.UnlockBundle("Anything for 30-day trial.");
if (success != true) {
    Console.WriteLine(chilkatGlob.LastErrorText);
    return;
}

//  This example requires Chilkat version 9.5.0.50 or greater.
Chilkat.SshTunnel tunnel = new Chilkat.SshTunnel();

string sshHostname = "www.my-ssh-server.com";
int sshPort = 22;

//  Connect to an SSH server and establish the SSH tunnel:
success = tunnel.Connect(sshHostname,sshPort);
if (success != true) {
    Console.WriteLine(tunnel.LastErrorText);
    return;
}

//  Authenticate with the SSH server via a login/password
//  or with a public key.
//  This example demonstrates SSH password authentication.
success = tunnel.AuthenticatePw("mySshLogin","mySshPassword");
if (success != true) {
    Console.WriteLine(tunnel.LastErrorText);
    return;
}

//  The destination host/port is the database server.
//  The DestHostname may be the domain name or
//  IP address (in dotted decimal notation) of the database
//  server.
tunnel.DestPort = 1433;
tunnel.DestHostname = "myDbServer.com";

//  Start accepting connections in a background thread.
//  The SSH tunnels are autonomously run in a background
//  thread.  There is one background thread for accepting
//  connections, and another for managing the tunnel pool.
int listenPort = 3316;
success = tunnel.BeginAccepting(listenPort);
if (success != true) {
    Console.WriteLine(tunnel.LastErrorText);
    return;
}

//  At this point the app may connect to the database server through
//  the SSH tunnel.  The database connection string would
//  use "localhost" for the hostname and 3316 for the port.
//  We're not going to show the database coding here,
//  because it can vary depending on the API you're using
//  (ADO, ODBC, OLE DB, etc. )

//  This is where the application's database code would go...

//  Stop the background listen/accept thread:
bool waitForThreadExit = true;
success = tunnel.StopAccepting(waitForThreadExit);
if (success != true) {
    Console.WriteLine(tunnel.LastErrorText);
    return;
}

//  Close the SSH tunnel (would also kick any remaining connected clients).
success = tunnel.CloseTunnel(waitForThreadExit);
if (success != true) {
    Console.WriteLine(tunnel.LastErrorText);
    return;
}


 

© 2000-2014 Chilkat Software, Inc. All Rights Reserved.