Socket.IOControl Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Legt Betriebsmodi auf niedriger Ebene für den Socket fest.
Überlädt
IOControl(Int32, Byte[], Byte[]) |
Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest. |
IOControl(IOControlCode, Byte[], Byte[]) |
Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest. |
IOControl(Int32, Byte[], Byte[])
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.
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
Parameter
- optionOutValue
- Byte[]
Ein Byte-Array, das die durch den Vorgang zurückgegebenen Ausgabedaten enthält.
Gibt zurück
Die Anzahl der Bytes im optionOutValue
-Parameter.
Ausnahmen
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
Es wurde versucht, den blockierenden Modus ohne Verwendung der Blocking-Eigenschaft zu ändern.
Ein Aufrufer in der Aufrufliste verfügt nicht über die erforderlichen Berechtigungen.
Beispiele
Im folgenden Codebeispiel werden die Ergebnisse von FIONREAD und der Available-Eigenschaft verglichen.
// 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;
}
Hinweise
Die IOControl -Methode bietet zugriff auf niedriger Ebene auf das Betriebssystem, das Socket dem aktuellen instance der Socket -Klasse zugrunde liegt. Weitere Informationen finden Sie in der WSAIoctl-Dokumentation .
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code erhalten haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine ausführliche Beschreibung des Fehlers.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.
Gilt für:
IOControl(IOControlCode, Byte[], Byte[])
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest.
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
Parameter
- ioControlCode
- IOControlCode
Ein IOControlCode-Wert, der den Steuerungscode des auszuführenden Vorgangs angibt.
- optionInValue
- Byte[]
Ein Array vom Typ Byte, das die für den Vorgang erforderlichen Eingabedaten enthält.
- optionOutValue
- Byte[]
Ein Array vom Typ Byte, das die von dem Vorgang zurückgegebenen Ausgabedaten enthält.
Gibt zurück
Die Anzahl der Bytes im optionOutValue
-Parameter.
Ausnahmen
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
Es wurde versucht, den blockierenden Modus ohne Verwendung der Blocking-Eigenschaft zu ändern.
Beispiele
Im folgenden Codebeispiel werden die Ergebnisse des Aufrufens IOControl mit DataToRead und der Available -Eigenschaft verglichen.
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;
}
Hinweise
Diese Methode bietet zugriff auf niedriger Ebene auf das Betriebssystem, das Socket dem aktuellen instance der Socket -Klasse zugrunde liegt. Weitere Informationen finden Sie in der WSAIoctl-Dokumentation .
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code erhalten haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine ausführliche Beschreibung des Fehlers.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.