Sample code for 30+ languages & platforms
Lianja

Example: Socket.DupSocket method

See more Socket/SSL/TLS Examples

Demonstrates how to call the DupSocket method.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

loSocket = createobject("CkSocket")
llSuccess = loSocket.Connect("example.com",443,.T.,5000)

// ...
// ...

// Duplicate the socket to share the same connection across threads.
// In a multithreaded application, each thread should use its own socket object. For example:

// - The main thread can use the original socket for reading.
// - A secondary thread can use a duplicate for writing.
// - Another thread can use a separate duplicate to monitor the connection status.

loSocket_for_sending = createobject("CkSocket")
llSuccess = loSocket.DupSocket(loSocket_for_sending)
if (llSuccess = .F.) then
    ? loSocket.LastErrorText
    release loSocket
    release loSocket_for_sending
    return
endif

loSocket_for_monitor = createobject("CkSocket")
llSuccess = loSocket.DupSocket(loSocket_for_monitor)
if (llSuccess = .F.) then
    ? loSocket.LastErrorText
    release loSocket
    release loSocket_for_sending
    release loSocket_for_monitor
    return
endif

// All three socket objects: socket, socket_for_sending, and socket_for_monitor share the same underlying connection.


release loSocket
release loSocket_for_sending
release loSocket_for_monitor