Socket.SetSocketOption Methode

Definition

Legt eine Socket-Option fest.

Überlädt

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Legt die angegebene Socket-Option auf den angegebenen, als Objekt dargestellten Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Legt die angegebene Socket-Option auf den angegebenen ganzzahligen Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Legt die angegebene Socket-Option auf den angegebenen Boolean-Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Legt die angegebene Socket-Option auf den angegebenen, als Bytearray dargestellten Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Legt die angegebene Socket-Option auf den angegebenen, als Objekt dargestellten Wert fest.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, System::Object ^ optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, object optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * obj -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Object)

Parameter

optionLevel
SocketOptionLevel

Einer der SocketOptionLevel-Werte.

optionName
SocketOptionName

Einer der SocketOptionName-Werte.

optionValue
Object

Eine LingerOption oder MulticastOption mit dem Wert der Option.

Ausnahmen

optionValue ist null.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel werden die LingerOption Werte und Send Timeoutwerte festgelegt.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Hinweise

Socket optionen bestimmen das Verhalten des aktuellen Socket. Verwenden Sie diese Überladung, um die LingerAddMembershipOptionen und DropMembershipSocket Optionen festzulegen. Verwenden Sie Socket für die Linger Option den optionLevel Parameter. For AddMembership and , DropMembershipuse IP. Wenn Sie den aktuellen Wert einer der oben aufgeführten Optionen abrufen möchten, verwenden Sie die GetSocketOption 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 in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine detaillierte Beschreibung des Fehlers.

Siehe auch

Gilt für:

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Legt die angegebene Socket-Option auf den angegebenen ganzzahligen Wert fest.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Integer)

Parameter

optionLevel
SocketOptionLevel

Einer der SocketOptionLevel-Werte.

optionName
SocketOptionName

Einer der SocketOptionName-Werte.

optionValue
Int32

Ein Wert der Option.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel werden die Werte und Send Timeoutwerte LingerOption festgelegt.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Hinweise

Socket optionen bestimmen das Verhalten des aktuellen Socket. Geben Sie für eine Option mit einem Boolean Datentyp einen Wert ohne Zero an, um die Option zu aktivieren, und einen Nullwert, um die Option zu deaktivieren. Geben Sie für eine Option mit einem ganzzahligen Datentyp den entsprechenden Wert an. Socket Optionen werden nach Protokollunterstützungsebene gruppiert.

Nachfolgend sind die verschiedenen Socket Optionen aufgeführt, die mithilfe dieser Überladung festgelegt werden können. Diese Optionen werden nach den entsprechenden SocketOptionLevelgruppiert. Wenn Sie eine dieser Optionen festlegen möchten, müssen Sie unbedingt den entsprechenden SocketOptionLevel optionLevel Parameter verwenden. Die Option, die Sie festlegen möchten, muss im optionName Parameter angegeben werden. Wenn Sie den aktuellen Wert einer der aufgelisteten Optionen abrufen möchten, verwenden Sie die GetSocketOption Methode.

SocketOptionLevel.Socket Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.IP Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.Tcp Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.Udp Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.IPv6 Optionen, die mithilfe dieser Überladung festgelegt werden können.

Weitere Informationen zu diesen Optionen finden Sie in der SocketOptionName Enumeration.

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 in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine detaillierte Beschreibung des Fehlers.

Hinweis

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

Siehe auch

Gilt für:

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Legt die angegebene Socket-Option auf den angegebenen Boolean-Wert fest.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, bool optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, bool optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * bool -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Boolean)

Parameter

optionLevel
SocketOptionLevel

Einer der SocketOptionLevel-Werte.

optionName
SocketOptionName

Einer der SocketOptionName-Werte.

optionValue
Boolean

Der als Boolean-Wert dargestellte Wert der Option.

Ausnahmen

Das Socket-Objekt wurde geschlossen.

Fehler beim Versuch, auf den Socket zuzugreifen.

Beispiele

Im folgenden Codebeispiel wird ein Socket geöffnet und die DontLinger OutOfBandInline Socketoptionen aktiviert.

// Establish the local endpoint for the socket.
IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() );
IPAddress^ ipAddr = ipHost->AddressList[ 0 ];
IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 );

// Create a TCP socket.
Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );

// Connect the socket to the remote endpoint.
client->Connect( ipEndPoint );

// Set option that allows socket to close gracefully without lingering.
client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::DontLinger, true );

// Set option that allows socket to receive out-of-band information in the data stream.
client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::OutOfBandInline, true );
// Establish the local endpoint for the socket.
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress  ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);

// Create a TCP socket.
Socket client = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream, ProtocolType.Tcp);

// Connect the socket to the remote endpoint.
client.Connect(ipEndPoint);

// Set option that allows socket to close gracefully without lingering.
client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true);

// Set option that allows socket to receive out-of-band information in the data stream.
client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.OutOfBandInline, true);

Hinweise

Socket optionen bestimmen das Verhalten des aktuellen Socket. Legen Sie optionValue fest, um true die Option zu aktivieren oder false die Option zu deaktivieren.

Socket Optionen werden nach Protokollunterstützungsebene gruppiert.

Nachfolgend sind die verschiedenen Socket Optionen aufgeführt, die mithilfe dieser Überladung festgelegt werden können. Diese Optionen werden nach dem entsprechenden SocketOptionLevel Wert gruppiert. Wenn Sie eine dieser Optionen festlegen möchten, müssen Sie unbedingt den entsprechenden SocketOptionLevel Wert für den optionLevel Parameter verwenden. Die Option, die Sie festlegen möchten, muss im optionName Parameter angegeben werden. Wenn Sie den aktuellen Wert einer der aufgelisteten Optionen abrufen möchten, verwenden Sie die GetSocketOption Methode.

SocketOptionLevel.Socket Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.IP Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.Tcp Optionen, die mithilfe dieser Überladung festgelegt werden können.

SocketOptionLevel.Udp Optionen, die mithilfe dieser Überladung festgelegt werden können.

Weitere Informationen zu diesen Optionen finden Sie in der SocketOptionName Aufzählung.

Hinweis

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

Gilt für:

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Legt die angegebene Socket-Option auf den angegebenen, als Bytearray dargestellten Wert fest.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub SetSocketOption (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 den Wert der Option darstellt.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel werden die Werte und Send Timeoutwerte LingerOption festgelegt.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Hinweise

Socket optionen bestimmen das Verhalten des aktuellen Socket. Verwenden Sie diese Überladung, um diese Socket Optionen festzulegen, die ein Bytearray als Optionswert erfordern.

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 in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine detaillierte Beschreibung des Fehlers.

Hinweis

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

Siehe auch

Gilt für: