DataFlex
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
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