Socket.GetSocketOption Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy lehetőség értékét Socket adja vissza.
Túlterhelések
| Name | Description |
|---|---|
| GetSocketOption(SocketOptionLevel, SocketOptionName) |
Egy megadott Socket beállítás értékét adja vissza, amely objektumként jelenik meg. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
A megadott Socket beállítási beállítást adja vissza, amely bájttömbként van ábrázolva. |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Egy tömb megadott Socket beállításának értékét adja vissza. |
GetSocketOption(SocketOptionLevel, SocketOptionName)
Egy megadott Socket beállítás értékét adja vissza, amely objektumként jelenik meg.
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);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object
Paraméterek
- optionLevel
- SocketOptionLevel
Az egyik SocketOptionLevel érték.
- optionName
- SocketOptionName
Az egyik SocketOptionName érték.
Válaszok
Egy objektum, amely a beállítás értékét jelöli. Ha a optionName paraméter a visszatérési értékre Linger van állítva, az az LingerOption osztály egy példánya. Ha optionName a visszatérési érték az osztály egy példányaMulticastOption, vagy DropMembershipaz értékre van állítvaAddMembership. Ha optionName bármilyen más érték, a visszatérési érték egész szám.
Kivételek
Hiba történt a szoftvercsatorna elérésekor.
-vagy-
optionName beállítás a nem támogatott értékre MaxConnectionslett állítva.
A Socket le van zárva.
Példák
Az alábbi példakód lekéri az és Send az LingerOption időtúllépési értékeket, és megjeleníti őket a konzolon.
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
Megjegyzések
Socket beállítások határozzák meg az aktuális Socketviselkedését. Használja ezt a túlterhelést a , AddMembershipés DropMembershipSocket a Lingerbeállítások lekéréséhez. A beállításhoz Linger használja Socket a paramétert optionLevel . For AddMembership és DropMembership, use IP. Ha a fent felsorolt lehetőségek bármelyikének értékét szeretné beállítani, használja a metódust SetSocketOption .
Note
Ha kap egy SocketException, használja a SocketException.ErrorCode tulajdonságot az adott hibakód lekéréséhez. A kód beszerzése után tekintse meg a Windows Sockets 2-es verziójának API-hibakódját a hiba részletes leírását.
Note
Ez a tag nyomkövetési adatokat ad ki, amikor engedélyezi a hálózati nyomkövetést az alkalmazásban. További információ: Network Tracing in .NET Framework.
Lásd még
A következőre érvényes:
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
A megadott Socket beállítási beállítást adja vissza, amely bájttömbként van ábrázolva.
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())
Paraméterek
- optionLevel
- SocketOptionLevel
Az egyik SocketOptionLevel érték.
- optionName
- SocketOptionName
Az egyik SocketOptionName érték.
Kivételek
Hiba történt a szoftvercsatorna elérésekor.
-vagy-
.NET Compact Framework-alkalmazásokban a Windows CE alapértelmezett pufferterülete 32768 bájtra van beállítva. A szoftvercsatornánkénti pufferterületet a hívással SetSocketOptionmódosíthatja.
A Socket le van zárva.
Példák
Az alábbi példakód lekéri az és Send az LingerOption időtúllépési értékeket, és megjeleníti őket a konzolon.
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
Megjegyzések
Socket beállítások határozzák meg az aktuális Socketviselkedését. A metódus sikeres elvégzése után a paraméter által optionValue megadott tömb a megadott Socket beállítás értékét tartalmazza.
Ha a optionValue tömb hossza kisebb, mint a megadott Socket beállítás értékének tárolásához szükséges bájtok száma, GetSocketOptionSocketExceptionegy . Ha kap egy SocketException, használja a SocketException.ErrorCode tulajdonságot az adott hibakód lekéréséhez. A kód beszerzése után tekintse meg a Windows Sockets 2-es verziójának API-hibakódját a hiba részletes leírását. Használja ezt a túlterhelést minden olyan szoftvercsatornához, amelyet logikai értékek vagy egész számok jelölnek.
Note
Ez a tag nyomkövetési adatokat ad ki, amikor engedélyezi a hálózati nyomkövetést az alkalmazásban. További információ: Network Tracing in .NET Framework.
Lásd még
A következőre érvényes:
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Egy tömb megadott Socket beállításának értékét adja vissza.
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()
Paraméterek
- optionLevel
- SocketOptionLevel
Az egyik SocketOptionLevel érték.
- optionName
- SocketOptionName
Az egyik SocketOptionName érték.
- optionLength
- Int32
A várt visszatérési érték bájtban megadott hossza.
Válaszok
Olyan típusú Byte tömb, amely a szoftvercsatorna-beállítás értékét tartalmazza.
Kivételek
Hiba történt a szoftvercsatorna elérésekor.
-vagy-
.NET Compact Framework-alkalmazásokban a Windows CE alapértelmezett pufferterülete 32768 bájtra van beállítva. A szoftvercsatornánkénti pufferterületet a hívással SetSocketOptionmódosíthatja.
A Socket le van zárva.
Példák
Az alábbi példakód lekéri az és Send az LingerOption időtúllépési értékeket, és megjeleníti őket a konzolon.
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
Megjegyzések
A optionLength paraméter beállítja a visszaadott bájttömb maximális méretét. Ha a beállítás értéke kevesebb bájtot igényel, a tömb csak annyi bájtot fog tartalmazni. Ha a beállítás értéke több bájtot igényel, GetSocketOption a program egy SocketException. Használja ezt a túlterhelést minden olyan szoftvercsatornához, amelyet logikai értékek vagy egész számok jelölnek.
Note
Ha kap egy SocketException, használja a SocketException.ErrorCode tulajdonságot az adott hibakód lekéréséhez. A kód beszerzése után tekintse meg a Windows Sockets 2-es verziójának API-hibakódját a hiba részletes leírását.
Note
Ez a tag nyomkövetési adatokat ad ki, amikor engedélyezi a hálózati nyomkövetést az alkalmazásban. További információ: Network Tracing in .NET Framework.