Socket.GetSocketOption 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í.
Vrátí hodnotu Socket možnosti.
Přetížení
| Name | Description |
|---|---|
| GetSocketOption(SocketOptionLevel, SocketOptionName) |
Vrátí hodnotu zadané Socket možnosti reprezentované jako objekt. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
Vrátí zadané Socket nastavení možnosti reprezentované jako pole bajtů. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Vrátí hodnotu zadané Socket možnosti v matici. |
GetSocketOption(SocketOptionLevel, SocketOptionName)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vrátí hodnotu zadané Socket možnosti reprezentované jako objekt.
public:
System::Object ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName);
public object? GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
public object GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object
Parametry
- optionLevel
- SocketOptionLevel
Jedna z SocketOptionLevel hodnot.
- optionName
- SocketOptionName
Jedna z SocketOptionName hodnot.
Návraty
Objekt, který představuje hodnotu možnosti.
optionName Pokud je parametr nastaven na Linger návratovou hodnotu je instance LingerOption třídy. Pokud optionName je nastavena AddMembership nebo DropMembership, návratová hodnota je instance MulticastOption třídy. Pokud optionName je jakákoli jiná hodnota, návratová hodnota je celé číslo.
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
-or-
optionName byla nastavena na nepodporovanou hodnotu MaxConnections.
Ta Socket byla uzavřena.
Příklady
Následující příklad kódu načte LingerOption hodnoty a Send časové limity a zobrazí je v konzole.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Poznámky
Socket možnosti určují chování aktuálního Socket. Toto přetížení použijte k získání LingerAddMembership, a DropMembershipSocket možnosti. Pro tuto Linger možnost použijte Socket parametr optionLevel . Pro AddMembership a DropMembership, použít IP. Pokud chcete nastavit hodnotu některé z výše uvedených možností, použijte metodu SetSocketOption .
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
Platí pro
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vrátí zadané Socket nastavení možnosti reprezentované jako pole bajtů.
public:
void GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())
Parametry
- optionLevel
- SocketOptionLevel
Jedna z SocketOptionLevel hodnot.
- optionName
- SocketOptionName
Jedna z SocketOptionName hodnot.
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
-or-
V aplikacích .NET Compact Framework je výchozí prostor vyrovnávací paměti systému Windows CE nastaven na 32768 bajtů. Prostor vyrovnávací paměti pro jednotlivé sokety můžete změnit voláním SetSocketOption.
Ta Socket byla uzavřena.
Příklady
Následující příklad kódu načte LingerOption hodnoty a Send časové limity a zobrazí je v konzole.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Poznámky
Socket možnosti určují chování aktuálního Socket. Po úspěšném dokončení této metody obsahuje pole určené parametrem optionValue hodnotu zadané Socket možnosti.
Pokud je délka optionValue pole menší než počet bajtů potřebných k uložení hodnoty zadané Socket možnosti, GetSocketOption vyvolá SocketExceptionchybu . Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby. Toto přetížení použijte pro všechny sokety, které jsou reprezentovány logickými hodnotami nebo celými čísly.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
Platí pro
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vrátí hodnotu zadané Socket možnosti v matici.
public:
cli::array <System::Byte> ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionLength);
public byte[] GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> byte[]
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionLength As Integer) As Byte()
Parametry
- optionLevel
- SocketOptionLevel
Jedna z SocketOptionLevel hodnot.
- optionName
- SocketOptionName
Jedna z SocketOptionName hodnot.
- optionLength
- Int32
Délka očekávané návratové hodnoty v bajtech.
Návraty
Pole typu Byte , které obsahuje hodnotu možnosti soketu.
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
-or-
V aplikacích .NET Compact Framework je výchozí prostor vyrovnávací paměti systému Windows CE nastaven na 32768 bajtů. Prostor vyrovnávací paměti pro jednotlivé sokety můžete změnit voláním SetSocketOption.
Ta Socket byla uzavřena.
Příklady
Následující příklad kódu načte LingerOption hodnoty a Send časové limity a zobrazí je v konzole.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Poznámky
Parametr optionLength nastaví maximální velikost vráceného bajtového pole. Pokud hodnota možnosti vyžaduje méně bajtů, bude pole obsahovat pouze tolik bajtů. Pokud hodnota možnosti vyžaduje více bajtů, GetSocketOption vyvolá chybu SocketException. Toto přetížení použijte pro všechny sokety, které jsou reprezentovány logickými hodnotami nebo celými čísly.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.