Teilen über


Socket.GetSocketOption Methode

Definition

Gibt den Wert einer Socket Option zurück.

Überlädt

Name Beschreibung
GetSocketOption(SocketOptionLevel, SocketOptionName)

Gibt den Wert einer angegebenen Socket Option zurück, dargestellt als Objekt.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Gibt die angegebene Socket Optionseinstellung zurück, dargestellt als Bytearray.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Gibt den Wert der angegebenen Socket Option in einem Array zurück.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Gibt den Wert einer angegebenen Socket Option zurück, dargestellt als 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

Parameter

optionLevel
SocketOptionLevel

Einer der SocketOptionLevel Werte.

optionName
SocketOptionName

Einer der SocketOptionName Werte.

Gibt zurück

Ein Objekt, das den Wert der Option darstellt. Wenn der optionName Parameter auf den Rückgabewert festgelegt ist, handelt es sich um Linger eine Instanz der LingerOption Klasse. Wenn optionName dieser Wert auf AddMembership oder DropMembership" festgelegt ist, ist der Rückgabewert eine Instanz der MulticastOption Klasse. Wenn optionName es sich um einen anderen Wert handelt, ist der Rückgabewert eine ganze Zahl.

Ausnahmen

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

-oder-

optionName wurde auf den nicht unterstützten Wert MaxConnectionsfestgelegt.

Das Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel werden die LingerOption Werte und Send Timeoutwerte abgerufen und in der Konsole angezeigt.

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

Hinweise

Socket options determine the behavior of the current Socket. Verwenden Sie diese Überladung, um die LingerOptionen AddMembershipabzurufen DropMembershipSocket . Verwenden Sie Socket für die Linger Option den optionLevel Parameter. Für AddMembership und DropMembership, verwenden IPSie . Wenn Sie den Wert einer der oben aufgeführten Optionen festlegen möchten, verwenden Sie die SetSocketOption Methode.

Hinweis

Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Hinweis

Dieses Mitglied gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Weitere Informationen

Gilt für:

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Gibt die angegebene Socket Optionseinstellung zurück, dargestellt als Bytearray.

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())

Parameter

optionLevel
SocketOptionLevel

Einer der SocketOptionLevel Werte.

optionName
SocketOptionName

Einer der SocketOptionName Werte.

optionValue
Byte[]

Ein Array vom Typ Byte , das die Optionseinstellung empfängt.

Ausnahmen

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

-oder-

In .NET Compact Framework-Anwendungen ist der Windows CE-Standardpufferspeicher auf 32768 Bytes festgelegt. Sie können den Pufferraum pro Socket ändern, indem Sie die Datei aufrufen SetSocketOption.

Das Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel werden die LingerOption Werte und Send Timeoutwerte abgerufen und in der Konsole angezeigt.

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

Hinweise

Socket options determine the behavior of the current Socket. Nach erfolgreichem Abschluss dieser Methode enthält das durch den optionValue Parameter angegebene Array den Wert der angegebenen Socket Option.

Wenn die Länge des optionValue Arrays kleiner als die Anzahl der Bytes ist, die zum Speichern des Werts der angegebenen Socket Option erforderlich sind, GetSocketOption löst ein SocketException. Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers. Verwenden Sie diese Überladung für alle Sockets, die durch boolesche Werte oder ganze Zahlen dargestellt werden.

Hinweis

Dieses Mitglied gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Weitere Informationen

Gilt für:

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Gibt den Wert der angegebenen Socket Option in einem Array zurück.

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()

Parameter

optionLevel
SocketOptionLevel

Einer der SocketOptionLevel Werte.

optionName
SocketOptionName

Einer der SocketOptionName Werte.

optionLength
Int32

Die Länge des erwarteten Rückgabewerts in Bytes.

Gibt zurück

Byte[]

Ein Array vom Typ Byte , das den Wert der Socketoption enthält.

Ausnahmen

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

-oder-

In .NET Compact Framework-Anwendungen ist der Windows CE-Standardpufferspeicher auf 32768 Bytes festgelegt. Sie können den Pufferraum pro Socket ändern, indem Sie die Datei aufrufen SetSocketOption.

Das Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel werden die LingerOption Werte und Send Timeoutwerte abgerufen und in der Konsole angezeigt.

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

Hinweise

Der optionLength Parameter legt die maximale Größe des zurückgegebenen Bytearrays fest. Wenn für den Optionswert weniger Bytes erforderlich sind, enthält das Array nur so viele Bytes. Wenn für den Optionswert mehr Bytes erforderlich sind, GetSocketOption wird ein SocketException. Verwenden Sie diese Überladung für alle Sockets, die durch boolesche Werte oder ganze Zahlen dargestellt werden.

Hinweis

Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Hinweis

Dieses Mitglied gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Weitere Informationen

Gilt für: