Socket.IOControl Methode

Definition

Legt Betriebsmodi auf niedriger Ebene für den Socket fest.

Überlädt

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

Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.

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

Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest.

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

Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.

public:
 int IOControl(int ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl (int ioControlCode, byte[]? optionInValue, 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

Parameter

ioControlCode
Int32

Ein Int32-Wert, der den Steuerungscode des auszuführenden Vorgangs angibt.

optionInValue
Byte[]

Ein Byte-Array, das die für den Vorgang erforderlichen Eingabedaten enthält.

optionOutValue
Byte[]

Ein Byte-Array, das die durch den Vorgang zurückgegebenen Ausgabedaten enthält.

Gibt zurück

Int32

Die Anzahl der Bytes im optionOutValue-Parameter.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Es wurde versucht, den blockierenden Modus ohne Verwendung der Blocking-Eigenschaft zu ändern.

Ein Aufrufer in der Aufrufliste verfügt nicht über die erforderlichen Berechtigungen.

Beispiele

Im folgenden Codebeispiel werden die Ergebnisse von FIONREAD und der Available-Eigenschaft verglichen.

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

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( FIONREAD, nullptr, outValue );

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

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

Hinweise

Die IOControl Methode bietet einen geringen Zugriff auf das Betriebssystem Socket , das der aktuellen Instanz der Socket Klasse zugrunde liegt. Weitere Informationen finden Sie in der WSAIoctl-Dokumentation .

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code abgerufen haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode für eine detaillierte Beschreibung des Fehlers.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter "Netzwerkablaufverfolgung" im .NET Framework.

Gilt für

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

Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest.

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

Parameter

ioControlCode
IOControlCode

Ein IOControlCode-Wert, der den Steuerungscode des auszuführenden Vorgangs angibt.

optionInValue
Byte[]

Ein Array vom Typ Byte, das die für den Vorgang erforderlichen Eingabedaten enthält.

optionOutValue
Byte[]

Ein Array vom Typ Byte, das die von dem Vorgang zurückgegebenen Ausgabedaten enthält.

Gibt zurück

Int32

Die Anzahl der Bytes im optionOutValue-Parameter.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Es wurde versucht, den blockierenden Modus ohne Verwendung der Blocking-Eigenschaft zu ändern.

Beispiele

Im folgenden Codebeispiel werden die Ergebnisse des Aufrufens IOControl mit DataToRead und der Available Eigenschaft verglichen.

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( IOControlCode::DataToRead, nullptr, outValue );

   UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
   Console::Write( "server has {0} bytes pending,",
      bytesAvailable );
   Console::WriteLine( "Available property says {1}.",
      s->Available );
   return;
}
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;
}

Hinweise

Diese Methode bietet geringen Zugriff auf das Betriebssystem Socket , das der aktuellen Instanz der Socket Klasse zugrunde liegt. Weitere Informationen finden Sie in der WSAIoctl-Dokumentation .

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code abgerufen haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode für eine detaillierte Beschreibung des Fehlers.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter "Netzwerkablaufverfolgung" im .NET Framework.

Gilt für