DataFlex
DataFlex
Move a Connection into a Socket Set
See more Socket/SSL/TLS Examples
Demonstrates Socket.TakeSocket, which moves a connection into a newly created member of this object's socket set. After one or more calls, the object acts as a set of sockets.
Background. A socket set groups multiple connections so they can be monitored together with the SelectForReading and SelectForWriting methods. After success, the source socket holds no connection.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoListenSock
Variant vConnectedSock
Handle hoConnectedSock
Handle hoSocketSet
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 connection out of connectedSock and into a newly created member of this object's socket
// set. After one or more such calls, socketSet acts as a set of connected sockets (useful with the
// SelectForReading / SelectForWriting methods). After success, connectedSock holds no connection.
Get Create (RefClass(cComChilkatSocket)) To hoSocketSet
If (Not(IsComObjectCreated(hoSocketSet))) Begin
Send CreateComObject of hoSocketSet
End
Get pvComObject of hoConnectedSock to vConnectedSock
Get ComTakeSocket Of hoSocketSet vConnectedSock To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSocketSet To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Connection added to the socket set."
End_Procedure