Sample code for 30+ languages & platforms
PureBasic

Accept the Next Incoming Connection

See more Socket/SSL/TLS Examples

Demonstrates Socket.AcceptNext, which waits for and accepts the next incoming connection on a listening socket, delivering it as a new connected Socket.

Background. A maxWaitMs of 0 waits indefinitely; a positive value waits up to that many milliseconds. For a TLS listener, acceptance includes the server-side TLS handshake.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkSocket.pb"

Procedure ChilkatExample()

    success.i = 0

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

    success = CkSocket::ckBindAndListen(socket,5000,25)
    If success = 0
        Debug CkSocket::ckLastErrorText(socket)
        CkSocket::ckDispose(socket)
        ProcedureReturn
    EndIf

    ;  Wait for and accept the next incoming connection on the listening socket.  maxWaitMs = 0 waits
    ;  indefinitely; a positive value waits up to that many milliseconds.  For a TLS listener, acceptance
    ;  includes the server-side TLS handshake.
    connectedSock.i = CkSocket::ckCreate()
    If connectedSock.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkSocket::ckAcceptNext(socket,20000,connectedSock)
    If success = 0
        Debug CkSocket::ckLastErrorText(socket)
        CkSocket::ckDispose(socket)
        CkSocket::ckDispose(connectedSock)
        ProcedureReturn
    EndIf

    Debug "Accepted a connection from " + CkSocket::ckRemoteIpAddress(connectedSock)


    CkSocket::ckDispose(socket)
    CkSocket::ckDispose(connectedSock)


    ProcedureReturn
EndProcedure