Sample code for 30+ languages & platforms
PureBasic

SSL Client Example

See more Socket/SSL/TLS Examples

Demonstrates how to connect to an SSL server, send a simple message, receive a simple response, and disconnect.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkSocket.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    socket.i = CkSocket::ckCreate()
    If socket.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ssl.i = 1
    maxWaitMillisec.i = 20000

    ; The SSL server hostname may be an IP address, a domain name,
    ; or "localhost".  You'll need to change this:
    sslServerHost.s
    sslServerHost = "123.123.88.88"
    sslServerPort.i = 8123

    ; Connect to the SSL server:
    success = CkSocket::ckConnect(socket,sslServerHost,sslServerPort,ssl,maxWaitMillisec)
    If success <> 1
        Debug CkSocket::ckLastErrorText(socket)
        CkSocket::ckDispose(socket)
        ProcedureReturn
    EndIf

    ; Set maximum timeouts for reading an writing (in millisec)
    CkSocket::setCkMaxReadIdleMs(socket, 20000)
    CkSocket::setCkMaxSendIdleMs(socket, 20000)

    ; Send a "Hello Server! -EOM-" message:
    success = CkSocket::ckSendString(socket,"Hello Server! -EOM-")
    If success <> 1
        Debug CkSocket::ckLastErrorText(socket)
        CkSocket::ckDispose(socket)
        ProcedureReturn
    EndIf

    ; The server (in this example) is going to send a "Hello Client! -EOM-" 
    ; message.  Read it:
    receivedMsg.s = CkSocket::ckReceiveUntilMatch(socket,"-EOM-")
    If CkSocket::ckLastMethodSuccess(socket) <> 1
        Debug CkSocket::ckLastErrorText(socket)
        CkSocket::ckDispose(socket)
        ProcedureReturn
    EndIf

    ; Close the connection with the server
    ; Wait a max of 20 seconds (20000 millsec)
    success = CkSocket::ckClose(socket,20000)

    Debug receivedMsg


    CkSocket::ckDispose(socket)


    ProcedureReturn
EndProcedure