Socket.GetSocketOption Metódus

Definíció

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.

optionValue
Byte[]

A beállítási beállítás fogadásához szükséges típusú Byte tömb.

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

Byte[]

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.

Lásd még

A következőre érvényes: