ioctlsocket (ws2_32)
Last changed: -77.124.220.248

.
Summary
TODO - a short description

C# Signature:

    [DllImport("Ws2_32.dll")]
    public static extern int ioctlsocket(IntPtr s, Command cmd, ref int argp);

VB Signature:

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

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    public int Avilible
    {
        get
        {
        var BufferRet = 0;

        // v1
        //BufferRet = 0;
        //var BufferPtr = Marshal.AllocHGlobal(Buffer);
        //BufferRet = Native.recv(socketPtr, BufferPtr, Buffer, Native.MsgFlags.MSG_PEEK);
        //Marshal.FreeHGlobal(BufferPtr);

        // v2
        //BufferRet = 0;
        //Native.ioctlsocket(this.socketPtr, Native.Command.FIONREAD, ref BufferRet);

        // v3

        BufferRet = 0;
        var nBytesReturned = 0;
        var infoSize = Marshal.SizeOf(BufferRet);
        var handle = Marshal.AllocHGlobal(infoSize);
        Native.WSAIoctl(
            this.socketPtr, Native.ControlCode.FIONREAD,
            IntPtr.Zero, 0,
            handle, infoSize,
            ref nBytesReturned,
            IntPtr.Zero, IntPtr.Zero);
        BufferRet = Marshal.ReadInt32(handle);

        return BufferRet;
        }
    }

Documentation
ioctlsocket on MSDN