Sample code for 30+ languages & platforms
SQL Server

Bind and Listen on a Randomly Selected Unused Port

See more Socket/SSL/TLS Examples

Demonstrates how to bind and listen on a randomly selected unused port.

Note:The ListenPort property used in this example is available starting in Chilkat v9.5.0.59.

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
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    -- This example requires the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

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

    -- Pass a value of 0 for the port number to randomly select
    -- an unused port.
    -- (The 2nd argument allows for a backlog of 25 pending connection requests when accepting connections.)
    EXEC sp_OAMethod @listenSocket, 'BindAndListen', @success OUT, 5555, 25
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @listenSocket, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @listenSocket
        RETURN
      END

    -- Find out what port was chosen.
    -- Note: The ListenPort propety was added in Chilkat v9.5.0.59
    DECLARE @listenPort int
    EXEC sp_OAGetProperty @listenSocket, 'ListenPort', @listenPort OUT

    PRINT 'Chosen listen port = ' + @listenPort

    EXEC @hr = sp_OADestroy @listenSocket


END
GO