Sample code for 30+ languages & platforms
SQL Server

Send a String over a Socket

See more Socket/SSL/TLS Examples

Demonstrates Socket.SendString, which encodes a string using StringCharset and sends the resulting bytes over the connected socket. No delimiter, terminator, or length prefix is added.

Background. Text send and receive operations encode and decode bytes using the StringCharset property. For plain ASCII or UTF-8 protocols, setting StringCharset to utf-8 is a safe default.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    DECLARE @socket int
    EXEC @hr = sp_OACreate 'Chilkat.Socket', @socket OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Connect to the server using TLS.  The 3rd argument enables the TLS handshake after the TCP
    --  connection succeeds; the 4th is the maximum time to wait, in milliseconds.
    DECLARE @bTls int
    SELECT @bTls = 1
    DECLARE @maxWaitMs int
    SELECT @maxWaitMs = 5000
    EXEC sp_OAMethod @socket, 'Connect', @success OUT, 'example.com', 5000, @bTls, @maxWaitMs
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @socket
        RETURN
      END

    --  StringCharset controls the character encoding used when sending and receiving text.
    EXEC sp_OASetProperty @socket, 'StringCharset', 'utf-8'

    --  Encode the string using StringCharset and send the resulting bytes.  No delimiter, terminator, or
    --  length prefix is added; the exact bytes are sent.  This example sends a command for a simple
    --  application-defined text protocol.
    DECLARE @message nvarchar(4000)
    SELECT @message = 'STATUS' + CHAR(13) + CHAR(10)
    EXEC sp_OAMethod @socket, 'SendString', @success OUT, @message
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @socket
        RETURN
      END

    PRINT 'Message sent.'

    EXEC @hr = sp_OADestroy @socket


END
GO