Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) Asynchronous SSL Client (Deprecated) ExampleNotice: The functionality described here is deprecated and replaced by a newer model for asynchronous method calls. The newer model was introduced in Chilkat v9.5.0.52, and is identified by methods having names ending in “Async” which return a task object. Demonstrates how to connect to an SSL server, send a simple message, receive a simple response, and disconnect. This example uses the asynchronous methods to connect, send, and receive.
#include <CkSocket.h> void ChilkatSample(void) { CkString strOut; // Notice: The functionality described here is deprecated and replaced // by a newer model for asynchronous method calls. The newer model was // introduced in Chilkat v9.5.0.52, and is identified by methods // having names ending in “Async” which return a task object. CkSocket socket; bool ssl = true; int maxWaitMillisec = 20000; // The SSL server hostname may be an IP address, a domain name, // or "localhost". You'll need to change this: const char *sslServerHost = 0; sslServerHost = "123.123.88.88"; int sslServerPort = 8123; // Connect to the SSL server asynchronously in a background thread. bool success = socket.AsyncConnectStart(sslServerHost,sslServerPort,ssl,maxWaitMillisec); if (success != true) { strOut.append(socket.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Wait for the socket to become connected... while ((socket.get_AsyncConnectFinished() != true)) { // Sleep 1 second. socket.SleepMs(1000); } // Did the connect fail? if (socket.get_AsyncConnectSuccess() != true) { strOut.append(socket.asyncConnectLog()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Set maximum timeouts for reading an writing (in millisec) socket.put_MaxReadIdleMs(20000); socket.put_MaxSendIdleMs(20000); // Send a "Hello Server! -EOM-" message: success = socket.AsyncSendString("Hello Server! -EOM-"); if (success != true) { strOut.append(socket.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Wait for the send to finish while ((socket.get_AsyncSendFinished() != true)) { // Sleep 1 second. socket.SleepMs(1000); } // Did the send fail? if (socket.get_AsyncSendSuccess() != true) { strOut.append(socket.asyncSendLog()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // The server (in this example) is going to send a "Hello Client! -EOM-" // message. Begin reading asynchronously in a background thread: success = socket.AsyncReceiveUntilMatch("-EOM-"); if (success != true) { strOut.append(socket.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Wait for the background read to finish while ((socket.get_AsyncReceiveFinished() != true)) { // Sleep 1 second. socket.SleepMs(1000); } // Did the receive fail? if (socket.get_AsyncReceiveSuccess() != true) { strOut.append(socket.asyncReceiveLog()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Display the received message: strOut.append(socket.asyncReceivedString()); strOut.append("\r\n"); // Close the connection with the server // Wait a max of 20 seconds (20000 millsec) success = socket.Close(20000); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
||||
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.