Socket.IOControl Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
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.
- 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.