Socket.GetSocketOption Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.
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
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.