Socket.IOControl Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastaví nízkoúrovňové provozní režimy pro Socket.
Přetížení
IOControl(Int32, Byte[], Byte[]) |
Nastaví nízkoúrovňové provozní režimy pro Socket použití číselných kontrolních kódů. |
IOControl(IOControlCode, Byte[], Byte[]) |
Nastaví nízkoúrovňové provozní režimy pro Socket nástroj pomocí výčtu IOControlCode pro zadání řídicích kódů. |
IOControl(Int32, Byte[], Byte[])
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Nastaví nízkoúrovňové provozní režimy pro Socket použití číselných kontrolních kódů.
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
Parametry
Návraty
Počet bajtů v parametru optionOutValue
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
Byl Socket zavřený.
Došlo k pokusu o změnu režimu blokování bez použití Blocking vlastnosti.
Volající v zásobníku volání nemá požadovaná oprávnění.
Příklady
Následující příklad kódu porovnává výsledky FIONREAD a Available vlastnost.
// 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;
}
Poznámky
Metoda IOControl poskytuje přístup na nízké úrovni k operačnímu systému Socket , který je základem aktuální instance Socket třídy. Další informace najdete v dokumentaci k WSAIoctl .
Poznámka
Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Jakmile tento kód získáte, projděte si podrobný popis chyby v dokumentaci k rozhraní API windows Sockets verze 2 .
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.
Platí pro
IOControl(IOControlCode, Byte[], Byte[])
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Nastaví nízkoúrovňové provozní režimy pro Socket nástroj pomocí výčtu IOControlCode pro zadání řídicích kódů.
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
Parametry
- ioControlCode
- IOControlCode
Hodnota IOControlCode , která určuje řídicí kód operace, která se má provést.
Návraty
Počet bajtů v parametru optionOutValue
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
Byl Socket zavřený.
Došlo k pokusu o změnu režimu blokování bez použití Blocking vlastnosti.
Příklady
Následující příklad kódu porovnává výsledky volání IOControl s DataToRead a Available vlastnost.
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;
}
Poznámky
Tato metoda poskytuje přístup na nízké úrovni k operačnímu systému Socket , který je základem aktuální instance Socket třídy. Další informace najdete v dokumentaci k WSAIoctl .
Poznámka
Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Jakmile tento kód získáte, projděte si podrobný popis chyby v dokumentaci k rozhraní API windows Sockets verze 2 .
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.