Unicode C
Unicode C
Check the IMAP Socket Connection
See more IMAP Examples
Demonstrates the Chilkat Imap.CheckConnection method, which checks whether the underlying TCP socket is currently connected to the IMAP server. This performs a low-level socket-state check and does not send an IMAP command. This example connects and checks the socket.
Background:
CheckConnection sits between the cached IsConnected and a full protocol round trip: it inspects the actual socket without sending an IMAP command, so it can catch a locally-closed socket that the cached flag would miss. It still cannot detect every half-open connection, though — only a real command like Noop that expects a server reply proves the session is genuinely alive end to end.Chilkat Unicode C Downloads
#include <C_CkImapW.h>
void ChilkatSample(void)
{
BOOL success;
HCkImapW imap;
BOOL stillConnected;
success = FALSE;
// Demonstrates the Imap.CheckConnection method, which checks whether the underlying TCP
// socket is currently connected to the IMAP server. This is a low-level socket-state check
// and does not send an IMAP command.
imap = CkImapW_Create();
CkImapW_putSsl(imap,TRUE);
CkImapW_putPort(imap,993);
success = CkImapW_Connect(imap,L"imap.example.com");
if (success == FALSE) {
wprintf(L"%s\n",CkImapW_lastErrorText(imap));
CkImapW_Dispose(imap);
return;
}
// Perform a low-level check of the socket connection state.
stillConnected = CkImapW_CheckConnection(imap);
if (stillConnected == TRUE) {
wprintf(L"The socket is still connected.\n");
}
else {
wprintf(L"The socket is no longer connected.\n");
}
success = CkImapW_Disconnect(imap);
if (success == FALSE) {
wprintf(L"%s\n",CkImapW_lastErrorText(imap));
CkImapW_Dispose(imap);
return;
}
CkImapW_Dispose(imap);
}