Socket.SetSocketOption Metoda

Definice

Socket Nastaví možnost.

Přetížení

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Nastaví zadanou možnost na zadanou Socket hodnotu reprezentovanou jako objekt.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Nastaví zadanou možnost na zadanou Socket celočíselnou hodnotu.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Nastaví zadanou možnost na zadanou Socket Boolean hodnotu.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Nastaví zadanou možnost na zadanou Socket hodnotu reprezentovanou jako bajtové pole.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Nastaví zadanou možnost na zadanou Socket hodnotu reprezentovanou jako objekt.

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)

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel hodnot.

optionName
SocketOptionName

Jedna z SocketOptionName hodnot.

optionValue
Object

A LingerOption nebo MulticastOption obsahující hodnotu možnosti.

Výjimky

optionValue je null.

Při pokusu o přístup k soketu došlo k chybě.

Příklady

Následující příklad kódu nastaví hodnoty a Send vypršení časového limituLingerOption.

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

Poznámky

Socket možnosti určují chování aktuálního Socket. Pomocí tohoto přetížení můžete nastavit Linger, AddMembershipa DropMembershipSocket možnosti. Linger Pro tuto možnost použijte Socket parametroptionLevel. Pro AddMembership a DropMembership, použít IP. Pokud chcete získat aktuální hodnotu některé z výše uvedených možností, použijte metodu GetSocketOption .

Poznámka

Pokud se zobrazí zpráva SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si projděte dokumentaci k chybě rozhraní API verze Windows Sockets verze 2, kde najdete podrobný popis chyby.

Viz také

Platí pro

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Nastaví zadanou možnost na zadanou Socket celočíselnou hodnotu.

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)

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel hodnot.

optionName
SocketOptionName

Jedna z SocketOptionName hodnot.

optionValue
Int32

Hodnota možnosti.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Příklady

Následující příklad kódu nastaví hodnoty a Send hodnoty časového limituLingerOption.

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

Poznámky

Socket možnosti určují chování aktuálního Socket. U možnosti s datovým typem Boolean zadejte nenulovou hodnotu, která tuto možnost povolí, a nulovou hodnotu, která tuto možnost zakáže. U možnosti s celočíselnou datovým typem zadejte příslušnou hodnotu. Socket možnosti jsou seskupené podle úrovně podpory protokolu.

Níže jsou uvedeny různé Socket možnosti, které lze nastavit pomocí tohoto přetížení. Tyto možnosti jsou seskupené podle příslušného SocketOptionLevel. Pokud máte v úmyslu optionLevel nastavit některou z těchto možností, nezapomeňte použít odpovídající SocketOptionLevel parametr. Možnost, kterou zvolíte k nastavení, musí být zadána v parametru optionName . Pokud chcete získat aktuální hodnotu některé z uvedených možností, použijte metodu GetSocketOption .

SocketOptionLevel.Socket možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.IP možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.Tcp možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.Udp možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.IPv6 možnosti, které lze nastavit pomocí tohoto přetížení.

Další informace o těchto možnostech najdete v výčtu SocketOptionName .

Poznámka

Pokud se zobrazí zpráva SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si projděte dokumentaci k chybě rozhraní API verze Windows Sockets verze 2, kde najdete podrobný popis chyby.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Viz také

Platí pro

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Nastaví zadanou možnost na zadanou Socket Boolean hodnotu.

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)

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel hodnot.

optionName
SocketOptionName

Jedna z SocketOptionName hodnot.

optionValue
Boolean

Hodnota možnosti reprezentovaná jako Boolean.

Výjimky

Objekt Socket byl uzavřen.

Při pokusu o přístup k soketu došlo k chybě.

Příklady

Následující příklad kódu otevře soket a povolí možnosti soketu DontLinger a soketu OutOfBandInline .

// 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);

Poznámky

Socket možnosti určují chování aktuálního Socket. Pokud chcete true tuto možnost povolit, nebo false tuto možnost zakázat, nastavte optionValue ji.

Socket možnosti jsou seskupené podle úrovně podpory protokolu.

Níže jsou uvedeny různé Socket možnosti, které lze nastavit pomocí tohoto přetížení. Tyto možnosti jsou seskupené podle příslušné SocketOptionLevel hodnoty. Pokud máte v úmyslu optionLevel nastavit některou z těchto možností, nezapomeňte pro parametr použít odpovídající SocketOptionLevel hodnotu. Možnost, kterou zvolíte k nastavení, musí být zadána v parametru optionName . Pokud chcete získat aktuální hodnotu některé z uvedených možností, použijte metodu GetSocketOption .

SocketOptionLevel.Socket možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.IP možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.Tcp možnosti, které lze nastavit pomocí tohoto přetížení.

SocketOptionLevel.Udp možnosti, které lze nastavit pomocí tohoto přetížení.

Další informace o těchto možnostech najdete v výčtu SocketOptionName .

Poznámka

Pokud se zobrazí SocketException výjimka, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si projděte dokumentaci k chybě rozhraní API verze Windows Sockets verze 2, kde najdete podrobný popis chyby.

Platí pro

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Nastaví zadanou možnost na zadanou Socket hodnotu reprezentovanou jako bajtové pole.

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

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel hodnot.

optionName
SocketOptionName

Jedna z SocketOptionName hodnot.

optionValue
Byte[]

Pole typu Byte , které představuje hodnotu možnosti.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Příklady

Následující příklad kódu nastaví hodnoty a Send hodnoty časového limituLingerOption.

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

Poznámky

Socket možnosti určují chování aktuálního Socket. Toto přetížení použijte k nastavení těchto Socket možností, které vyžadují pole bajtů jako hodnotu možnosti.

Poznámka

Pokud se zobrazí zpráva SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si projděte dokumentaci k chybě rozhraní API verze Windows Sockets verze 2, kde najdete podrobný popis chyby.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Viz také

Platí pro