Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt den Wert einer angegebenen, als Objekt dargestellten Socket-Option zurück.
Overloads Public Function GetSocketOption( _
ByVal optionLevel As SocketOptionLevel, _ ByVal optionName As SocketOptionName _) As Object
[C#]
public object GetSocketOption(SocketOptionLeveloptionLevel,SocketOptionNameoptionName);
[C++]
public: Object* GetSocketOption(SocketOptionLeveloptionLevel,SocketOptionNameoptionName);
[JScript]
public function GetSocketOption(
optionLevel : SocketOptionLevel,optionName : SocketOptionName) : Object;
Parameter
- optionLevel
Einer der SocketOptionLevel-Werte. - optionName
Einer der SocketOptionName-Werte.
Rückgabewert
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
| Ausnahmetyp | Bedingung |
|---|---|
| SocketException | Beim Zugriff auf den Socket ist ein Fehler aufgetreten. Weitere Informationen finden Sie im Abschnitt "Hinweise". |
| ObjectDisposedException | Der Socket wurde geschlossen. |
Hinweise
Socket-Optionen bestimmen das Verhalten des aktuellen Socket. Verwenden Sie diese Überladung, um die Linger-Option, die AddMembership-Option und die DropMembership Socket-Option abzurufen. Verwenden Sie Socket für den optionLevel-Parameter, um die Linger-Option abzurufen. Verwenden Sie IP bei AddMembership und DropMembership. Verwenden Sie die SetSocketOption-Methode, um den Wert der oben aufgeführten Optionen festzulegen.
Hinweis Wenn Sie eine SocketException erhalten, können Sie mit SocketException.ErrorCode den spezifischen Fehlercode abrufen. Wenn Sie diesen Code abgerufen haben, können Sie in MSDN in der Dokumentation zu API-Fehlercodes für Windows Socket, Version 2, eine detaillierte Beschreibung des Fehlers nachlesen.
Beispiel
[Visual Basic, C#, C++] Im folgenden Beispiel werden die Werte für das LingerOption-Timeout und das Send-Timeout abgerufen und auf 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
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 'SetSocketOptions
[C#]
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 ();
[C++]
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.
Byte bytes[] = new 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(__box(__try_cast<LingerOption *> (s->GetSocketOption(SocketOptionLevel::Socket,
SocketOptionName::Linger))->LingerTime)->ToString());
s->Close();
[JScript] Für JScript ist kein Beispiel verfügbar. Klicken Sie zum Anzeigen eines Beispiels für Visual Basic, C# oder C++ in der linken oberen Ecke der Seite auf die Schaltfläche "Sprachfilter"
.
Anforderungen
Plattformen: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003-Familie, .NET Compact Framework - Windows CE .NET, CLI-Standard (Common Language Infrastructure)
Siehe auch
Socket-Klasse | Socket-Member | System.Net.Sockets-Namespace | Socket.GetSocketOption-Überladungsliste | SetSocketOption | SocketOptionName | SocketOptionLevel