Freigeben über


Socket.GetSocketOption Methode

Definition

Gibt den Wert einer Socket-Option zurück.

Überlädt

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

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

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 erhalten soll.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.

- oder -

In .NET Compact Framework-Anwendungen ist der Standardpufferspeicher für Windows CE auf 32768 Bytes festgelegt. Sie können den Pufferspeicher pro Socket durch den Aufruf von SetSocketOption ändern.

Der Socket wurde geschlossen.

Beispiele

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

Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));

// Blocks until send returns.
int i = s->Send(msg);

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive(bytes);

// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<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
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 -Optionen bestimmen das Verhalten des aktuellen Socket. Nach erfolgreichem Abschluss dieser Methode enthält das vom optionValue Parameter angegebene Array den Wert der angegebenen Socket Option.

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

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Weitere Informationen

Gilt für:

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

Fehler beim Versuch, auf den Socket zuzugreifen.

- oder -

In .NET Compact Framework-Anwendungen ist der Standardpufferspeicher für Windows CE auf 32768 Bytes festgelegt. Sie können den Pufferspeicher pro Socket durch den Aufruf von SetSocketOption ändern.

Der Socket wurde geschlossen.

Beispiele

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

Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));

// Blocks until send returns.
int i = s->Send(msg);

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive(bytes);

// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<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
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 der Optionswert weniger Bytes erfordert, enthält das Array nur so viele Bytes. Wenn der Optionswert mehr Bytes erfordert, GetSocketOption wird ein SocketExceptionausgelöst. Verwenden Sie diese Überladung für alle Sockets, die durch boolesche Werte oder ganze Zahlen dargestellt werden.

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 eine ausführliche Beschreibung des Fehlers in der Dokumentation zur Windows Sockets-API, Version 2 .

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Weitere Informationen

Gilt für:

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

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

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 Linger festgelegt ist, ist der Rückgabewert eine Instanz der LingerOption-Klasse. Wenn optionName auf AddMembership oder DropMembership festgelegt ist, ist der Rückgabewert eine Instanz der MulticastOption-Klasse. Wenn optionName einen anderen Wert hat, ist der Rückgabewert eine ganze Zahl.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.

- oder -

optionName wurde auf den nicht unterstützten Wert MaxConnections festgelegt.

Der Socket wurde geschlossen.

Beispiele

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

Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));

// Blocks until send returns.
int i = s->Send(msg);

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive(bytes);

// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<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
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 -Optionen bestimmen das Verhalten des aktuellen Socket. Verwenden Sie diese Überladung, um die LingerOptionen , AddMembershipund DropMembershipSocket abzurufen. Verwenden Sie für die Linger Option für den optionLevel Parameter.Socket Verwenden Sie IPfür AddMembership und DropMembership. Wenn Sie den Wert einer der oben aufgeführten Optionen festlegen möchten, verwenden Sie die SetSocketOption -Methode.

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 eine ausführliche Beschreibung des Fehlers in der Dokumentation zur Windows Sockets-API, Version 2 .

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Weitere Informationen

Gilt für: