Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
Asynchronous SSL Client ExampleDemonstrates 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.
CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @sTmp0 nvarchar(4000) DECLARE @socket int EXEC @hr = sp_OACreate 'Chilkat.Socket', @socket OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @socket, 'UnlockComponent', @success OUT, 'Anything for 30-day trial' IF @success <> 1 BEGIN PRINT 'Failed to unlock component' RETURN END DECLARE @ssl int SELECT @ssl = 1 DECLARE @maxWaitMillisec int SELECT @maxWaitMillisec = 20000 -- The SSL server hostname may be an IP address, a domain name, -- or "localhost". You'll need to change this: DECLARE @sslServerHost nvarchar(4000) SELECT @sslServerHost = '123.123.88.88' DECLARE @sslServerPort int SELECT @sslServerPort = 8123 -- Connect to the SSL server asynchronously in a background thread. EXEC sp_OAMethod @socket, 'AsyncConnectStart', @success OUT, @sslServerHost, @sslServerPort, @ssl, @maxWaitMillisec IF @success <> 1 BEGIN EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Wait for the socket to become connected... EXEC sp_OAGetProperty @socket, 'AsyncConnectFinished', @sTmp0 OUT WHILE (@sTmp0 <> 1) BEGIN -- Sleep 1 second. EXEC sp_OAMethod @socket, 'SleepMs', NULL, 1000 END -- Did the connect fail? EXEC sp_OAGetProperty @socket, 'AsyncConnectSuccess', @sTmp0 OUT IF @sTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @socket, 'AsyncConnectLog', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Set maximum timeouts for reading an writing (in millisec) EXEC sp_OASetProperty @socket, 'MaxReadIdleMs', 20000 EXEC sp_OASetProperty @socket, 'MaxSendIdleMs', 20000 -- Send a "Hello Server! -EOM-" message: EXEC sp_OAMethod @socket, 'AsyncSendString', @success OUT, 'Hello Server! -EOM-' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Wait for the send to finish EXEC sp_OAGetProperty @socket, 'AsyncSendFinished', @sTmp0 OUT WHILE (@sTmp0 <> 1) BEGIN -- Sleep 1 second. EXEC sp_OAMethod @socket, 'SleepMs', NULL, 1000 END -- Did the send fail? EXEC sp_OAGetProperty @socket, 'AsyncSendSuccess', @sTmp0 OUT IF @sTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @socket, 'AsyncSendLog', @sTmp0 OUT PRINT @sTmp0 RETURN END -- The server (in this example) is going to send a "Hello Client! -EOM-" -- message. Begin reading asynchronously in a background thread: EXEC sp_OAMethod @socket, 'AsyncReceiveUntilMatch', @success OUT, '-EOM-' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Wait for the background read to finish EXEC sp_OAGetProperty @socket, 'AsyncReceiveFinished', @sTmp0 OUT WHILE (@sTmp0 <> 1) BEGIN -- Sleep 1 second. EXEC sp_OAMethod @socket, 'SleepMs', NULL, 1000 END -- Did the receive fail? EXEC sp_OAGetProperty @socket, 'AsyncReceiveSuccess', @sTmp0 OUT IF @sTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @socket, 'AsyncReceiveLog', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Display the received message: EXEC sp_OAGetProperty @socket, 'AsyncReceivedString', @sTmp0 OUT PRINT @sTmp0 -- Close the connection with the server -- Wait a max of 20 seconds (20000 millsec) EXEC sp_OAMethod @socket, 'Close', NULL, 20000 END GO |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.