Socket.GetSocketOption Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve el valor de una opción de Socket.
Sobrecargas
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
Devuelve el valor de la opción de Socket especificada, representado como una matriz de bytes. |
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Devuelve el valor de la opción de Socket especificada en una matriz. |
GetSocketOption(SocketOptionLevel, SocketOptionName) |
Devuelve el valor de una opción de Socket especificada en forma de objeto. |
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Devuelve el valor de la opción de Socket especificada, representado como una matriz 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
Uno de los valores de SocketOptionLevel.
- optionName
- SocketOptionName
Uno de los valores de SocketOptionName.
Excepciones
Error al intentar acceder al socket.
o bien
En aplicaciones de .NET Compact Framework, el espacio en búfer predeterminado de Windows CE está establecido en 32768 bytes. El espacio en búfer por cada socket puede modificarse mediante una llamada a SetSocketOption.
El Socket se ha cerrado.
Ejemplos
En el ejemplo de código siguiente se recuperan los LingerOption valores de tiempo de espera y Send se muestran en la consola.
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.
array<Byte>^ bytes = gcnew array<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(safe_cast<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
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
Comentarios
Socket las opciones determinan el comportamiento del objeto actual Socket. Tras completar correctamente este método, la matriz especificada por el optionValue
parámetro contiene el valor de la opción especificada Socket .
Cuando la longitud de la optionValue
matriz sea menor que el número de bytes necesarios para almacenar el valor de la opción especificada Socket , GetSocketOption producirá una SocketExceptionexcepción . Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error. Use esta sobrecarga para los sockets representados por valores booleanos o enteros.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.
Consulte también
Se aplica a
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Devuelve el valor de la opción de Socket especificada en una matriz.
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
Uno de los valores de SocketOptionLevel.
- optionName
- SocketOptionName
Uno de los valores de SocketOptionName.
- optionLength
- Int32
Longitud, en bytes, del valor devuelto previsto.
Devoluciones
Matriz de tipo Byte que contiene el valor de la opción de socket.
Excepciones
Error al intentar acceder al socket.
o bien
En aplicaciones de .NET Compact Framework, el espacio en búfer predeterminado de Windows CE está establecido en 32768 bytes. El espacio en búfer por cada socket puede modificarse mediante una llamada a SetSocketOption.
El Socket se ha cerrado.
Ejemplos
En el ejemplo de código siguiente se recuperan los LingerOption valores de tiempo de espera y Send se muestran en la consola.
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.
array<Byte>^ bytes = gcnew array<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(safe_cast<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
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
Comentarios
El optionLength
parámetro establece el tamaño máximo de la matriz de bytes devuelta. Si el valor de opción requiere menos bytes, la matriz contendrá solo esos muchos bytes. Si el valor de la opción requiere más bytes, GetSocketOption producirá una SocketExceptionexcepción . Use esta sobrecarga para los sockets representados por valores booleanos o enteros.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.
Consulte también
Se aplica a
GetSocketOption(SocketOptionLevel, SocketOptionName)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Devuelve el valor de una opción de Socket especificada en forma de 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);
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
Uno de los valores de SocketOptionLevel.
- optionName
- SocketOptionName
Uno de los valores de SocketOptionName.
Devoluciones
Objeto que representa el valor de una opción. Cuando se establece el parámetro optionName
en Linger, el valor devuelto es una instancia de la clase LingerOption. Cuando se establece el parámetro optionName
en AddMembership o DropMembership, el valor devuelto es una instancia de la clase MulticastOption. Cuando optionName
está establecido en cualquier otro valor, el valor de devolución es un entero.
Excepciones
Error al intentar acceder al socket.
o bien
optionName
se estableció en el valor MaxConnections, que no es compatible.
El Socket se ha cerrado.
Ejemplos
En el ejemplo de código siguiente se recuperan los LingerOption valores de tiempo de espera y Send se muestran en la consola.
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.
array<Byte>^ bytes = gcnew array<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(safe_cast<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
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
Comentarios
Socket las opciones determinan el comportamiento del objeto actual Socket. Use esta sobrecarga para obtener las Lingeropciones , AddMembershipy DropMembershipSocket . Para la Linger opción , use Socket para el optionLevel
parámetro . Para AddMembership y DropMembership, use IP. Si desea establecer el valor de cualquiera de las opciones enumeradas anteriormente, use el SetSocketOption método .
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.