Socket.IOControl Méthode

Définition

Définit les modes de fonctionnement de bas niveau de Socket.

Surcharges

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

Définit les modes de fonctionnement de bas niveau de Socket à l'aide de codes de contrôle numériques.

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

Définit les modes de fonctionnement de bas niveau de Socket à l'aide de l'énumération IOControlCode afin de spécifier les codes de contrôle.

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

Définit les modes de fonctionnement de bas niveau de Socket à l'aide de codes de contrôle numériques.

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

Paramètres

ioControlCode
Int32

Valeur Int32 qui spécifie le code de contrôle de l'opération à exécuter.

optionInValue
Byte[]

Tableau Byte contenant les données d'entrée requises par l'opération.

optionOutValue
Byte[]

Tableau Byte contenant les données de sortie retournées par l'opération.

Retours

Int32

Nombre d'octets dans le paramètre optionOutValue.

Exceptions

Une erreur s’est produite pendant la tentative d’accès au socket.

Une tentative de modification du mode blocage sans utiliser la propriété Blocking a été effectuée.

Un appelant de la pile des appels ne dispose pas des autorisations requises.

Exemples

L’exemple de code suivant compare les résultats de FIONREAD et de la propriété 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;
 }

Remarques

La IOControl méthode fournit un accès de bas niveau au système Socket d’exploitation sous-jacent à l’instance actuelle de la Socket classe. Pour plus d’informations, consultez la documentation WSAIoctl .

Notes

Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Le suivi réseau dans .NET Framework.

S’applique à

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

Définit les modes de fonctionnement de bas niveau de Socket à l'aide de l'énumération IOControlCode afin de spécifier les codes de contrôle.

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

Paramètres

ioControlCode
IOControlCode

Valeur IOControlCode qui spécifie le code de contrôle de l'opération à exécuter.

optionInValue
Byte[]

Tableau de type Byte contenant les données d'entrée requises par l'opération.

optionOutValue
Byte[]

Tableau de type Byte contenant les données de sortie retournées par l'opération.

Retours

Int32

Nombre d'octets dans le paramètre optionOutValue.

Exceptions

Une erreur s’est produite pendant la tentative d’accès au socket.

Une tentative de modification du mode blocage sans utiliser la propriété Blocking a été effectuée.

Exemples

L’exemple de code suivant compare les résultats de l’appel IOControl et DataToRead de la Available propriété.

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

Remarques

Cette méthode fournit un accès de bas niveau au système Socket d’exploitation sous-jacent à l’instance actuelle de la Socket classe. Pour plus d’informations, consultez la documentation WSAIoctl .

Notes

Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Le suivi réseau dans .NET Framework.

S’applique à