Programming Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3

 

 

 

 

 

 

 

 

Streaming SFTP Download

Demonstrates how to download a file chunk by chunk from an SSH server.

Downloads:

MS Windows Visual C/C++ Libraries
Linux/CentOS C/C++ Libraries
MAC OS X C/C++ Libraries
Solaris C/C++ Libraries
C++ Builder Libraries
#include <C_CkSFtp.h>
#include <C_CkByteData.h>

void ChilkatSample(void)
    {
    HCkSFtp sftp;
    BOOL success;
    long port;
    const char * hostname;
    const char * handle;
    unsigned char *pData;
    HCkByteData dataChunk;
    BOOL bEof;
    long chunkSize;
    long numBytesReceived;

    //  Important: It is helpful to send the contents of the
    //  sftp.LastErrorText property when requesting support.

    sftp = CkSFtp_Create();

    //  Any string automatically begins a fully-functional 30-day trial.

    success = CkSFtp_UnlockComponent(sftp,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Set some timeouts, in milliseconds:
    CkSFtp_putConnectTimeoutMs(sftp,5000);
    CkSFtp_putIdleTimeoutMs(sftp,15000);

    //  Connect to the SSH server.
    //  The standard SSH port = 22
    //  The hostname may be a hostname or IP address.

    hostname = "www.my-ssh-server.com";
    port = 22;
    success = CkSFtp_Connect(sftp,hostname,port);
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Authenticate with the SSH server.  Chilkat SFTP supports
    //  both password-based authenication as well as public-key
    //  authentication.  This example uses password authenication.
    success = CkSFtp_AuthenticatePw(sftp,"myLogin","myPassword");
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  After authenticating, the SFTP subsystem must be initialized:
    success = CkSFtp_InitializeSftp(sftp);
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Open a file on the server:

    handle = CkSFtp_openFile(sftp,"hamlet.xml","readOnly","openExisting");
    if (handle == 0 ) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    dataChunk = CkByteData_Create();

    bEof = FALSE;

    chunkSize = 10000;

    while (!bEof) {

        success = CkSFtp_ReadFileBytes(sftp,handle,chunkSize,dataChunk);
        if (success == TRUE) {

            //  Do whatever  you wish with the data received...
            //  It is possible that if the EOF is reached, 0 bytes will be returned.
            numBytesReceived = CkByteData_getSize(dataChunk);
            pData = CkByteData_getData(dataChunk);

            printf("numBytesReceived = %d\n"
                ,numBytesReceived);

        }
        else {
            printf("%s\n",CkSFtp_lastErrorText(sftp));
            break;
        }

        bEof = CkSFtp_Eof(sftp,handle);
    }

    //  Close the file.
    success = CkSFtp_CloseHandle(sftp,handle);
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    printf("Success.\n");

    CkSFtp_Dispose(sftp);
    CkByteData_Dispose(dataChunk);

    }

Need a specific example? Send a request to support@chilkatsoft.com

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