Socket.IOControl Método

Definición

Establece modos operativos de bajo nivel para Socket.

Sobrecargas

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

Establece modos operativos de bajo nivel para el Socket que utiliza códigos de control numéricos.

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

Establece modos operativos de bajo nivel para el Socket que utiliza la enumeración IOControlCode para especificar códigos de control.

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Establece modos operativos de bajo nivel para el Socket que utiliza códigos de control numéricos.

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

Parámetros

ioControlCode
Int32

Valor de Int32 que especifica el código de control de la operación que se ha de realizar.

optionInValue
Byte[]

Matriz Byte que contiene los datos de entrada requeridos por la operación.

optionOutValue
Byte[]

Matriz Byte que contiene los datos de salida devueltos por la operación.

Devoluciones

Número de bytes del parámetro optionOutValue.

Excepciones

Error al intentar acceder al socket.

El Socket se ha cerrado.

Se intentó modificar el modo de bloqueo sin utilizar la propiedad Blocking.

Un llamador de la pila de llamadas no tiene los permisos necesarios.

Ejemplos

En el ejemplo de código siguiente se comparan los resultados de FIONREAD y la propiedad Available.

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

Comentarios

El IOControl método proporciona acceso de bajo nivel al sistema Socket operativo subyacente a la instancia actual de la Socket clase . Para obtener más información, consulte la documentación de WSAIoctl .

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.

Se aplica a

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Establece modos operativos de bajo nivel para el Socket que utiliza la enumeración IOControlCode para especificar códigos de control.

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

Parámetros

ioControlCode
IOControlCode

Valor de IOControlCode que especifica el código de control de la operación que se ha de realizar.

optionInValue
Byte[]

Matriz de tipo Byte que contiene los datos de entrada requeridos por la operación.

optionOutValue
Byte[]

Matriz de tipo Byte que contiene los datos de salida requeridos por la operación.

Devoluciones

Número de bytes del parámetro optionOutValue.

Excepciones

Error al intentar acceder al socket.

El Socket se ha cerrado.

Se intentó modificar el modo de bloqueo sin utilizar la propiedad Blocking.

Ejemplos

En el ejemplo de código siguiente se comparan los resultados de la llamada IOControl con DataToRead y la Available propiedad .

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

Comentarios

Este método proporciona acceso de bajo nivel al sistema Socket operativo subyacente a la instancia actual de la Socket clase . Para obtener más información, consulte la documentación de WSAIoctl .

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.

Se aplica a