Socket.IOControl Methode

Definition

Legt Betriebsmodi auf niedriger Ebene für den Socket fest.Sets low-level operating modes for the Socket.

Überlädt

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

Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest.Sets low-level operating modes for the Socket using the IOControlCode enumeration to specify control codes.

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

Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.Sets low-level operating modes for the Socket using numerical control codes.

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

Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest.Sets low-level operating modes for the Socket using the IOControlCode enumeration to specify control codes.

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

Parameter

ioControlCode
IOControlCode

Ein IOControlCode-Wert, der den Steuerungscode des auszuführenden Vorgangs angibt.A IOControlCode value that specifies the control code of the operation to perform.

optionInValue
Byte[]

Ein Array vom Typ Byte, das die für den Vorgang erforderlichen Eingabedaten enthält.An array of type Byte that contains the input data required by the operation.

optionOutValue
Byte[]

Ein Array vom Typ Byte, das die von dem Vorgang zurückgegebenen Ausgabedaten enthält.An array of type Byte that contains the output data returned by the operation.

Gibt zurück

Die Anzahl der Bytes im optionOutValue-Parameter.The number of bytes in the optionOutValue parameter.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Es wurde versucht, den blockierenden Modus ohne Verwendung der Blocking-Eigenschaft zu ändern.An attempt was made to change the blocking mode without using the Blocking property.

Beispiele

Im folgenden Codebeispiel werden die Ergebnisse der aufrufenden IOControl mit DataToRead und der Available-Eigenschaft verglichen.The following code example compares the results of calling IOControl with DataToRead and the Available property.

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 Zugriff auf niedriger Ebene auf das Betriebssystem Socket der aktuellen Instanz der Socket Klasse zugrunde liegt.This method provides low-level access to the operating system Socket underlying the current instance of the Socket class. Weitere Informationen finden Sie in der WSAIoctl -Dokumentation.For more, see the WSAIoctl documentation.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Sicherheit

SecurityPermission
zum Ausführen von nicht verwaltetem Code.to execute unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

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

Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.Sets low-level operating modes for the Socket using numerical control codes.

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

Parameter

ioControlCode
Int32

Ein Int32-Wert, der den Steuerungscode des auszuführenden Vorgangs angibt.An Int32 value that specifies the control code of the operation to perform.

optionInValue
Byte[]

Ein Byte-Array, das die für den Vorgang erforderlichen Eingabedaten enthält.A Byte array that contains the input data required by the operation.

optionOutValue
Byte[]

Ein Byte-Array, das die durch den Vorgang zurückgegebenen Ausgabedaten enthält.A Byte array that contains the output data returned by the operation.

Gibt zurück

Die Anzahl der Bytes im optionOutValue-Parameter.The number of bytes in the optionOutValue parameter.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Es wurde versucht, den blockierenden Modus ohne Verwendung der Blocking-Eigenschaft zu ändern.An attempt was made to change the blocking mode without using the Blocking property.

Ein Aufrufer in der Aufrufliste verfügt nicht über die erforderlichen Berechtigungen.A caller in the call stack does not have the required permissions.

Beispiele

Im folgenden Codebeispiel werden die Ergebnisse von "fonread" und der verfügbaren Eigenschaft verglichen.The following code example compares the results of FIONREAD and the Available property.

// 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 Zugriff auf niedriger Ebene auf das Betriebssystem Socket der aktuellen Instanz der Socket-Klasse zugrunde liegt.The IOControl method provides low-level access to the operating system Socket underlying the current instance of the Socket class. Weitere Informationen finden Sie in der WSAIoctl -Dokumentation.For more information, see the WSAIoctl documentation.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Sicherheit

SecurityPermission
zum Ausführen von nicht verwaltetem Code.to execute unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

Gilt für: