Socket.IOControl Methode

Definitie

Hiermee stelt u de bedrijfsmodi op laag niveau in voor de Socket.

Overloads

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

Hiermee stelt u de besturingsmodi op laag niveau in voor het Socket gebruik van de IOControlCode opsomming om besturingscodes op te geven.

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

Hiermee stelt u besturingsmodi op laag niveau in voor het Socket gebruik van numerieke besturingscodes.

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

Hiermee stelt u de besturingsmodi op laag niveau in voor het Socket gebruik van de IOControlCode opsomming om besturingscodes op te geven.

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

Parameters

ioControlCode
IOControlCode

Een IOControlCode waarde die de besturingscode aangeeft van de bewerking die moet worden uitgevoerd.

optionInValue
Byte[]

Een matrix van het type Byte dat de invoergegevens bevat die vereist zijn voor de bewerking.

optionOutValue
Byte[]

Een matrix van het type Byte dat de uitvoergegevens bevat die door de bewerking worden geretourneerd.

Retouren

Het aantal bytes in de optionOutValue parameter.

Uitzonderingen

Er is een fout opgetreden bij het openen van de socket.

Er is geprobeerd de blokkeringsmodus te wijzigen zonder de Blocking eigenschap te gebruiken.

Voorbeelden

In het volgende codevoorbeeld worden de resultaten van het aanroepen IOControl met DataToRead en de Available eigenschap vergeleken.

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;
}

Opmerkingen

Deze methode biedt toegang op laag niveau tot het besturingssysteem Socket onder het huidige exemplaar van de Socket klasse. Zie de WSAIoctl-documentatie voor meer informatie.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

Note

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Van toepassing op

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

Hiermee stelt u besturingsmodi op laag niveau in voor het Socket gebruik van numerieke besturingscodes.

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

Parameters

ioControlCode
Int32

Een Int32 waarde die de besturingscode aangeeft van de bewerking die moet worden uitgevoerd.

optionInValue
Byte[]

Een Byte matrix die de invoergegevens bevat die vereist zijn voor de bewerking.

optionOutValue
Byte[]

Een Byte matrix die de uitvoergegevens bevat die door de bewerking worden geretourneerd.

Retouren

Het aantal bytes in de optionOutValue parameter.

Uitzonderingen

Er is een fout opgetreden bij het openen van de socket.

Er is geprobeerd de blokkeringsmodus te wijzigen zonder de Blocking eigenschap te gebruiken.

Een aanroeper in de aanroepstack beschikt niet over de vereiste machtigingen.

Voorbeelden

In het volgende codevoorbeeld worden de resultaten van FIONREAD en de eigenschap Available vergeleken.

 // 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;
 }

Opmerkingen

De IOControl methode biedt toegang op laag niveau tot het besturingssysteem Socket onder het huidige exemplaar van de Socket klasse. Zie de WSAIoctl-documentatie voor meer informatie.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

Note

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Van toepassing op