Unicode C
Unicode C
Example: Socket.DupSocket method
See more Socket/SSL/TLS Examples
Demonstrates how to call the DupSocket method.Chilkat Unicode C Downloads
#include <C_CkSocketW.h>
void ChilkatSample(void)
{
BOOL success;
HCkSocketW socket;
HCkSocketW socket_for_sending;
HCkSocketW socket_for_monitor;
success = FALSE;
socket = CkSocketW_Create();
success = CkSocketW_Connect(socket,L"example.com",443,TRUE,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.
socket_for_sending = CkSocketW_Create();
success = CkSocketW_DupSocket(socket,socket_for_sending);
if (success == FALSE) {
wprintf(L"%s\n",CkSocketW_lastErrorText(socket));
CkSocketW_Dispose(socket);
CkSocketW_Dispose(socket_for_sending);
return;
}
socket_for_monitor = CkSocketW_Create();
success = CkSocketW_DupSocket(socket,socket_for_monitor);
if (success == FALSE) {
wprintf(L"%s\n",CkSocketW_lastErrorText(socket));
CkSocketW_Dispose(socket);
CkSocketW_Dispose(socket_for_sending);
CkSocketW_Dispose(socket_for_monitor);
return;
}
// All three socket objects: socket, socket_for_sending, and socket_for_monitor share the same underlying connection.
CkSocketW_Dispose(socket);
CkSocketW_Dispose(socket_for_sending);
CkSocketW_Dispose(socket_for_monitor);
}