Condividi tramite


Socket.IOControl Metodo

Definizione

Imposta le modalità operative di basso livello per il Socket.

Overload

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

Imposta le modalità operative di basso livello per il Socket utilizzando codici di controllo numerici.

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

Imposta le modalità operative di basso livello per il Socket utilizzando l'enumerazione IOControlCode per specificare i codici di controllo.

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

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Imposta le modalità operative di basso livello per il Socket utilizzando codici di controllo numerici.

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

Parametri

ioControlCode
Int32

Valore di Int32 che specifica il codice di controllo dell'operazione da eseguire.

optionInValue
Byte[]

Matrice Byte che contiene i dati di input richiesti dall'operazione.

optionOutValue
Byte[]

Matrice Byte che contiene i dati di output richiesti dall'operazione.

Restituisce

Numero di byte nel parametro optionOutValue.

Eccezioni

Si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

È stato effettuato un tentativo di modificare la modalità di blocco senza utilizzare la proprietà Blocking.

Uno dei chiamanti nello stack di chiamate non dispone delle autorizzazioni richieste.

Esempio

Nell'esempio di codice seguente vengono confrontati i risultati di FIONREAD e la proprietà 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;
 }

Commenti

Il IOControl metodo fornisce accesso di basso livello al sistema Socket operativo sottostante l'istanza corrente della Socket classe . Per altre informazioni, vedere la documentazione di WSAIoctl .

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a

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

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Imposta le modalità operative di basso livello per il Socket utilizzando l'enumerazione IOControlCode per specificare i codici di controllo.

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

Parametri

ioControlCode
IOControlCode

Valore di IOControlCode che specifica il codice di controllo dell'operazione da eseguire.

optionInValue
Byte[]

Matrice di tipo Byte che contiene i dati di input richiesti dall'operazione.

optionOutValue
Byte[]

Matrice di tipo Byte che contiene i dati di output restituiti dall'operazione.

Restituisce

Numero di byte nel parametro optionOutValue.

Eccezioni

Si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

È stato effettuato un tentativo di modificare la modalità di blocco senza utilizzare la proprietà Blocking.

Esempio

Nell'esempio di codice seguente vengono confrontati i risultati della chiamata IOControl a DataToRead e della Available proprietà .

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

Commenti

Questo metodo fornisce l'accesso di basso livello al sistema Socket operativo sottostante l'istanza corrente della Socket classe . Per altre informazioni, vedere la documentazione di WSAIoctl .

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a