Socket.GetSocketOption Método

Definição

Devolve o valor de uma Socket opção.

Sobrecargas

Name Description
GetSocketOption(SocketOptionLevel, SocketOptionName)

Devolve o valor de uma opção especificada Socket , representada como um objeto.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Devolve a opção especificada Socket , representada como um array de bytes.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Devolve o valor da opção especificada Socket num array.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Devolve o valor de uma opção especificada Socket , representada como um objeto.

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);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object

Parâmetros

optionLevel
SocketOptionLevel

Um dos SocketOptionLevel valores.

optionName
SocketOptionName

Um dos SocketOptionName valores.

Devoluções

Um objeto que representa o valor da opção. Quando o optionName parâmetro está definido para Linger , o valor de retorno é uma instância da LingerOption classe. Quando optionName está definido como AddMembership ou DropMembership, o valor de retorno é uma instância da MulticastOption classe. Quando optionName é qualquer outro valor, o valor de retorno é um inteiro.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

-ou-

optionName foi definido para o valor MaxConnectionsnão suportado .

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte recupera os LingerOption valores de time-out e Send exibe-os na consola.

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

Observações

Socket As opções determinam o comportamento da corrente Socket. Usa esta sobrecarga para obter as Lingeropções, AddMembership, e DropMembershipSocket . Para a Linger opção, use Socket como parâmetro optionLevel . Para AddMembership e DropMembership, use IP. Se quiser definir o valor de alguma das opções acima listadas, use o SetSocketOption método.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Devolve a opção especificada Socket , representada como um array de bytes.

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

Parâmetros

optionLevel
SocketOptionLevel

Um dos SocketOptionLevel valores.

optionName
SocketOptionName

Um dos SocketOptionName valores.

optionValue
Byte[]

Um array de tipos Byte que recebe a definição de opção.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

-ou-

Em aplicações .NET Compact Framework, o espaço de buffer predefinido do Windows CE é definido para 32768 bytes. Pode alterar o espaço do buffer por socket chamando SetSocketOption.

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte recupera os LingerOption valores de time-out e Send exibe-os na consola.

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

Observações

Socket As opções determinam o comportamento da corrente Socket. Após a conclusão bem-sucedida deste método, o array especificado pelo optionValue parâmetro contém o valor da opção especificada Socket .

Quando o comprimento do optionValue array é menor do que o número de bytes necessários para armazenar o valor da opção especificada Socket , GetSocketOption gerará um SocketException. Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro. Use esta sobrecarga para quaisquer sockets representados por valores booleanos ou inteiros.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Devolve o valor da opção especificada Socket num array.

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

Parâmetros

optionLevel
SocketOptionLevel

Um dos SocketOptionLevel valores.

optionName
SocketOptionName

Um dos SocketOptionName valores.

optionLength
Int32

O comprimento, em bytes, do valor esperado de retorno.

Devoluções

Byte[]

Um array do tipo Byte que contém o valor da opção socket.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

-ou-

Em aplicações .NET Compact Framework, o espaço de buffer predefinido do Windows CE é definido para 32768 bytes. Pode alterar o espaço do buffer por socket chamando SetSocketOption.

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte recupera os LingerOption valores de time-out e Send exibe-os na consola.

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

Observações

O optionLength parâmetro define o tamanho máximo do array de bytes devolvido. Se o valor da opção exigir menos bytes, o array conterá apenas esse número de bytes. Se o valor da opção exigir mais bytes, GetSocketOption irá lançar um SocketException. Use esta sobrecarga para quaisquer sockets representados por valores booleanos ou inteiros.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a