Sample code for 30+ languages & platforms
DataFlex

Move a Connection into Another Socket

See more Socket/SSL/TLS Examples

Demonstrates Socket.TakeConnection, which moves the active connection from one Socket into another. The receiving object first releases any connection it previously held.

Background. Unlike TakeSocket, TakeConnection does not add a member to a socket set. After success, the source socket holds no connection. This is useful for handing an accepted connection to a dedicated handler object.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoListenSock
    Variant vConnectedSock
    Handle hoConnectedSock
    Handle hoHandlerSock
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatSocket)) To hoListenSock
    If (Not(IsComObjectCreated(hoListenSock))) Begin
        Send CreateComObject of hoListenSock
    End

    Get ComBindAndListen Of hoListenSock 5000 25 To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoListenSock To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatSocket)) To hoConnectedSock
    If (Not(IsComObjectCreated(hoConnectedSock))) Begin
        Send CreateComObject of hoConnectedSock
    End
    Get pvComObject of hoConnectedSock to vConnectedSock
    Get ComAcceptNext Of hoListenSock 20000 vConnectedSock To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoListenSock To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    //  Move the active connection out of connectedSock and into another Socket object.  Unlike
    //  TakeSocket, this does not add a member to a socket set.  After success, connectedSock holds no
    //  connection.
    Get Create (RefClass(cComChilkatSocket)) To hoHandlerSock
    If (Not(IsComObjectCreated(hoHandlerSock))) Begin
        Send CreateComObject of hoHandlerSock
    End
    Get pvComObject of hoConnectedSock to vConnectedSock
    Get ComTakeConnection Of hoHandlerSock vConnectedSock To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHandlerSock To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Connection moved to the handler socket."


End_Procedure