Socket.IOControl Metod

Definition

Anger driftlägen på Socketlåg nivå för .

Överlagringar

Name Description
IOControl(IOControlCode, Byte[], Byte[])

Anger driftlägen på Socket låg nivå för att använda IOControlCode uppräkningen för att ange kontrollkoder.

IOControl(Int32, Byte[], Byte[])

Anger driftlägen på låg nivå för användning av Socket numeriska kontrollkoder.

IOControl(IOControlCode, Byte[], Byte[])

Anger driftlägen på Socket låg nivå för att använda IOControlCode uppräkningen för att ange kontrollkoder.

public:
 int IOControl(System::Net::Sockets::IOControlCode ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : System.Net.Sockets.IOControlCode * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As IOControlCode, optionInValue As Byte(), optionOutValue As Byte()) As Integer

Parametrar

ioControlCode
IOControlCode

Ett IOControlCode värde som anger kontrollkoden för den åtgärd som ska utföras.

optionInValue
Byte[]

En matris av typen Byte som innehåller de indata som krävs av åtgärden.

optionOutValue
Byte[]

En matris av typen Byte som innehåller utdata som returneras av åtgärden.

Returer

Antalet byte i parametern optionOutValue .

Undantag

Ett fel uppstod vid försök att komma åt socketen.

Ett försök gjordes att ändra blockeringsläget utan att använda egenskapen Blocking .

Exempel

I följande kodexempel jämförs resultatet av anrop IOControl med DataToRead och egenskapen Available .

static void DisplayPendingByteCount(Socket s)
{
    byte[] outValue = BitConverter.GetBytes(0);

    // Check how many bytes have been received.
    s.IOControl(IOControlCode.DataToRead, null, outValue);

    uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    Console.Write("server has {0} bytes pending. ",
        bytesAvailable);
    Console.WriteLine("Available property says {1}.",
                     s.Available);

    return;
}

Kommentarer

Den här metoden ger åtkomst på låg nivå till operativsystemet Socket som ligger bakom den aktuella instansen Socket av klassen. Mer information finns i WSAIoctl-dokumentationen .

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.

Gäller för

IOControl(Int32, Byte[], Byte[])

Anger driftlägen på låg nivå för användning av Socket numeriska kontrollkoder.

public:
 int IOControl(int ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : int * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As Integer, optionInValue As Byte(), optionOutValue As Byte()) As Integer

Parametrar

ioControlCode
Int32

Ett Int32 värde som anger kontrollkoden för den åtgärd som ska utföras.

optionInValue
Byte[]

En Byte matris som innehåller de indata som krävs av åtgärden.

optionOutValue
Byte[]

En Byte matris som innehåller utdata som returneras av åtgärden.

Returer

Antalet byte i parametern optionOutValue .

Undantag

Ett fel uppstod vid försök att komma åt socketen.

Ett försök gjordes att ändra blockeringsläget utan att använda egenskapen Blocking .

En anropare i samtalsstacken har inte de behörigheter som krävs.

Exempel

I följande kodexempel jämförs resultatet av FIONREAD och egenskapen Tillgänglig.

 // FIONREAD is also available as the "Available" property.
public const int FIONREAD   = 0x4004667F;

static void DisplayPendingByteCount(Socket s)
 {
     byte[] outValue = BitConverter.GetBytes(0);

     // Check how many bytes have been received.
     s.IOControl(FIONREAD, null, outValue);

     uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
     Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
         bytesAvailable, s.Available);

     return;
 }

Kommentarer

Metoden IOControl ger åtkomst på låg nivå till det operativsystem Socket som ligger bakom den aktuella instansen Socket av klassen. Mer information finns i WSAIoctl-dokumentationen .

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.

Gäller för