Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

WSAStartup (ws2_32)
 
.
Summary
TODO - a short description

jagadheesh kamalesh

C# Signature:

[DllImport("ws2_32.dll", CharSet = CharSet.Auto, SetLastError=true)]
static extern Int32 WSAStartup(Int16 wVersionRequested, out WSAData wsaData);

VB Signature:

Declare Function WSAStartup Lib "ws2_32.dll" (TODO) As TODO

User-Defined Types:

None.

Summary
Initializes the Windows Sockets API for use by an application. Ensure WSACleanup() is called for every successful call to WSAStartup().

Notes:

None.

C# Signature:

[DllImport("ws2_32.dll", CharSet = CharSet.Auto, SetLastError=true)]
static extern Int32 WSAStartup(Int16 wVersionRequested, ref WSAData wsaData);

VB Signature:

Declare Function WSAStartup Lib "ws2_32.dll" (ByVal versionRequested As Int16, infoBuffer As WSAData) As Integer

User-Defined Types:

WSAData will need to be defined, possibly in the class that calls WSAStartup.

Tips & Tricks:

Please add some!

Notes:

The version to be requested should be 2.0 or 2.2.

Sample Code:

Tips & Tricks:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Sample Code:

C# Code Sample:

    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
         [StructLayout(LayoutKind.Sequential)]
         public struct WSAData
         {
             const int WSADESCRIPTION_LEN=256;
             const int WSASYS_STATUS_LEN=128;

             public Int16 wVersion;
             public Int16 wHighVersion;  
             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = WSADESCRIPTION_LEN + 1)]
             public String szDescription;  
             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = WSASYS_STATUS_LEN + 1)]
             public String szSystemStatus;
             public Int16 iMaxSockets;  
             public Int16 iMaxUdpDg;  
             public IntPtr lpVendorInfo;
         }
         public const int SUCCESS = 0;
         public const int HIGH_VERSION = 2;
         public const int LOW_VERSION = 2;
         public const short WORD_VERSION = HIGH_VERSION*256+LOW_VERSION;

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            WSAData data = new WSAData();
            int result = 0;

            result = WSAStartup(WORD_VERSION, ref data);
            if (result == SUCCESS)
            {
                Console.WriteLine(data.Description);
                WSACleanup();
            }
            Console.ReadLine();
        }
    }

}

VB Code Sample:

Module Module1

    Public Const SUCCESS As Integer = 0
    Public Const HIGH_VERSION As Integer = 2
    Public Const LOW_VERSION As Integer = 2
    Public Const WORD_VERSION As Short = 36

    Public Structure WSAData
    Public wVersion As Short
    Public wHighVersion As Short
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=257)> _
    Public Description As String
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> _
    Public Status As String
    Public MaxSockets As Integer
    Public MaxUdpDg As Integer
    Public vendorInfoPointer As IntPtr
    End Structure

    Declare Function WSAStartup Lib "ws2_32.dll" ( _
    ByVal versionRequested As Int16, _
    ByVal infoBuffer As WSAData) As Integer

    Declare Function WSACleanup Lib "ws2_32.dll" () As Integer

    Sub Main()

    Dim resultCode As Integer = 0
    Dim data As WSAData

    data = New WSAData

    resultCode = WSAStartup(WORD_VERSION, data)
    If (resultCode = SUCCESS) Then
        WSACleanup()
    End If

    End Sub

End Module

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
WSAStartup on MSDN

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions