Socket Clase

Definición

Implementa la interfaz de sockets Berkeley.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Herencia
Socket
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra cómo se puede usar la Socket clase para enviar datos a un servidor HTTP, imprimiendo la respuesta ASCII a la salida estándar. En este ejemplo se bloquea el subproceso que realiza la llamada hasta que se recibe toda la página.

private static void SendHttpRequest(Uri? uri = null, int port = 80)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.0
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(uri.Host, port);

    // Send the request.
    // For the tiny amount of data in this example, the first call to Send() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += socket.Send(requestBytes, bytesSent, requestBytes.Length - bytesSent, SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = socket.Receive(responseBytes);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        Console.Out.Write(responseChars, 0, charCount);
    }
}

En el ejemplo siguiente se muestra el mismo escenario HTTP GET, mediante api asincrónicas basadas en tareas, al mismo tiempo que se reenvía CancellationToken a los métodos asincrónicos, lo que hace que se pueda cancelar toda la operación.

Sugerencia

SocketLos métodos asincrónicos que no toman un CancellationToken valor normalmente devuelven un Task, que se asigna en el montón. Las sobrecargas cancelables siempre ValueTaskse devuelven; su uso ayuda a reducir las asignaciones en código de alto rendimiento.

private static async Task SendHttpRequestAsync(Uri? uri = null, int port = 80, CancellationToken cancellationToken = default)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.1
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    await socket.ConnectAsync(uri.Host, port, cancellationToken);

    // Send the request.
    // For the tiny amount of data in this example, the first call to SendAsync() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += await socket.SendAsync(requestBytes.AsMemory(bytesSent), SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = await socket.ReceiveAsync(responseBytes, SocketFlags.None, cancellationToken);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        await Console.Out.WriteAsync(responseChars.AsMemory(0, charCount), cancellationToken);
    }
}

Comentarios

Para más información sobre esta API, consulte Comentarios complementarios de la API para Socket.

Constructores

Socket(AddressFamily, SocketType, ProtocolType)

Inicializa una instancia nueva de la clase Socket con la familia de direcciones, el tipo de socket y el protocolo que se especifiquen.

Socket(SafeSocketHandle)

Inicializa una nueva instancia de la clase Socket para el identificador de socket especificado.

Socket(SocketInformation)

Inicializa una nueva instancia de la clase Socket utilizando el valor devuelto por DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Inicializa una instancia nueva de la clase Socket usando el tipo de socket y el protocolo que se especifiquen. Si el sistema operativo admite IPv6, este constructor crea un socket de modo dual; de lo contrario, crea un socket IPv4.

Propiedades

AddressFamily

Obtiene la familia de direcciones de Socket.

Available

Obtiene la cantidad de datos que se recibieron de la red y están disponibles para leer.

Blocking

Obtiene o establece un valor que indica si Socket está en modo de bloqueo.

Connected

Obtiene un valor que indica si Socket se conecta con un host remoto a partir de la última operación Send u Receive.

DontFragment

Obtiene o establece un valor que especifica si Socket permite fragmentar los datagramas del protocolo de Internet (IP).

DualMode

Obtiene o establece un valor que especifica si Socket es un socket de modo dual que se usa para IPv4 e IPv6.

EnableBroadcast

Obtiene o establece un Boolean valor que especifica si Socket puede enviar paquetes de difusión.

ExclusiveAddressUse

Obtiene o establece un valor de Boolean que especifica si Socket permite sólo a un proceso el enlace a un puerto.

Handle

Obtiene el identificador del sistema operativo de Socket.

IsBound

Obtiene un valor que indica si Socket se enlaza a un puerto local concreto.

LingerState

Obtiene o establece un valor que especifica si Socket retrasará el cierre de un socket en un intento de envío de todos los datos pendientes.

LocalEndPoint

Obtiene el extremo local.

MulticastLoopback

Obtiene o establece un valor que especifica si se entregan paquetes de multidifusión saliente a la aplicación emisora.

NoDelay

Obtiene o establece un valor de Boolean que especifica si la secuencia Socket está utilizando el algoritmo de Nagle.

OSSupportsIPv4

Indica si el sistema operativo subyacente y los adaptadores de red admiten la versión 4 del protocolo de Internet (IPv4).

OSSupportsIPv6

Indica si el sistema operativo subyacente y los adaptadores de red admiten la versión 6 del protocolo Internet (IPv6).

OSSupportsUnixDomainSockets

Indica si el sistema operativo subyacente admite los sockets de dominio unix.

ProtocolType

Obtiene el tipo de protocolo de Socket.

ReceiveBufferSize

Obtiene o establece un valor que especifica el tamaño del búfer de recepción de Socket.

ReceiveTimeout

Obtiene o establece un valor que especifica el tiempo tras el que una llamada Receive sincrónica pasará a tiempo de espera.

RemoteEndPoint

Obtiene el extremo remoto.

SafeHandle

Obtiene un elemento SafeSocketHandle que representa el identificador de socket que encapsula el objeto Socket actual.

SendBufferSize

Obtiene o establece un valor que especifica el tamaño del búfer de envío de Socket.

SendTimeout

Obtiene o establece un valor que especifica el tiempo tras el que una llamada Send sincrónica pasará a tiempo de espera.

SocketType

Obtiene el tipo de Socket.

SupportsIPv4
Obsoletos.
Obsoletos.
Obsoletos.

Obtiene un valor que indica si la compatibilidad con IPv4 está disponible y habilitada en el host actual.

SupportsIPv6
Obsoletos.
Obsoletos.
Obsoletos.

Obtiene un valor que indica si el marco de trabajo admite IPv6 para ciertos miembros Dns obsoletos.

Ttl

Obtiene o establece un valor que especifica el valor de período de vida (TTL) de los paquetes de protocolo Internet (IP) enviados por Socket.

UseOnlyOverlappedIO
Obsoletos.

Obtiene o establece un valor que especifica si el socket solo debe usar el modo de E/S superpuesta. En .NET 5+ (incluidas las versiones de .NET Core), el valor siempre falsees .

Métodos

Accept()

Crea un nuevo objeto Socket para una conexión recién establecida.

AcceptAsync()

Acepta una conexión entrante.

AcceptAsync(CancellationToken)

Acepta una conexión entrante.

AcceptAsync(Socket)

Acepta una conexión entrante.

AcceptAsync(Socket, CancellationToken)

Acepta una conexión entrante.

AcceptAsync(SocketAsyncEventArgs)

Comienza una operación asincrónica para aceptar un intento de conexión entrante.

BeginAccept(AsyncCallback, Object)

Comienza una operación asincrónica para aceptar un intento de conexión entrante.

BeginAccept(Int32, AsyncCallback, Object)

Comienza una operación asincrónica para aceptar un intento de conexión entrante y recibe el primer bloque de datos enviado por la aplicación cliente.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Comienza una operación asincrónica para aceptar un intento de conexión entrante desde un socket específico y recibe el primer bloque de datos enviado por la aplicación cliente.

BeginConnect(EndPoint, AsyncCallback, Object)

Inicia una solicitud asincrónica para una conexión a host remoto.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Inicia una solicitud asincrónica para una conexión a host remoto. El host se especifica mediante una IPAddress y un número de puerto.

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Inicia una solicitud asincrónica para una conexión a host remoto. El host se especifica mediante una matriz IPAddress y un número de puerto.

BeginConnect(String, Int32, AsyncCallback, Object)

Inicia una solicitud asincrónica para una conexión a host remoto. El host se especifica mediante un nombre de host y un número de puerto.

BeginDisconnect(Boolean, AsyncCallback, Object)

Comienza una solicitud asincrónica para la desconexión de un extremo remoto.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Comienza a recibir asincrónicamente los datos de un objeto Socket conectado.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Comienza a recibir asincrónicamente los datos de un objeto Socket conectado.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Comienza a recibir asincrónicamente los datos de un objeto Socket conectado.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Comienza a recibir asincrónicamente los datos de un objeto Socket conectado.

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Comienza a recibir asincrónicamente los datos de un dispositivo de red especificado.

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Empieza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación indicada del búfer de datos, mediante el marcador SocketFlags especificado, y almacena el punto de conexión y la información sobre paquetes.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Envía datos asincrónicamente a un objeto Socket conectado.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Envía datos asincrónicamente a un objeto Socket conectado.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Envía datos asincrónicamente a un objeto Socket conectado.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Envía datos asincrónicamente a un objeto Socket conectado.

BeginSendFile(String, AsyncCallback, Object)

Envía el archivo fileName a un objeto Socket conectado mediante el marcador UseDefaultWorkerThread.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Envía, de forma asincrónica, un archivo y búferes de datos a un objeto Socket conectado.

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Envía datos de forma asincrónica a un host remoto concreto.

Bind(EndPoint)

Asocia un objeto Socket a un extremo local.

CancelConnectAsync(SocketAsyncEventArgs)

Cancela una solicitud asincrónica de una conexión a un host remoto.

Close()

Cierra la conexión Socket y libera todos los recursos asociados.

Close(Int32)

Cierra la conexión Socket y libera todos los recursos asociados con un tiempo de espera especificado para permitir el envío de los datos en cola.

Connect(EndPoint)

Establece una conexión a un host remoto.

Connect(IPAddress, Int32)

Establece una conexión a un host remoto. El host se especifica mediante una dirección IP y un número de puerto.

Connect(IPAddress[], Int32)

Establece una conexión a un host remoto. El host se especifica mediante una matriz de direcciones IP y un número de puerto.

Connect(String, Int32)

Establece una conexión a un host remoto. El host se especifica mediante un nombre de host y un número de puerto.

ConnectAsync(EndPoint)

Establece una conexión a un host remoto.

ConnectAsync(EndPoint, CancellationToken)

Establece una conexión a un host remoto.

ConnectAsync(IPAddress, Int32)

Establece una conexión a un host remoto.

ConnectAsync(IPAddress, Int32, CancellationToken)

Establece una conexión a un host remoto.

ConnectAsync(IPAddress[], Int32)

Establece una conexión a un host remoto.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Establece una conexión a un host remoto.

ConnectAsync(SocketAsyncEventArgs)

Comienza una solicitud asincrónica para una conexión a host remoto.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Comienza una solicitud asincrónica para una conexión a host remoto.

ConnectAsync(String, Int32)

Establece una conexión a un host remoto.

ConnectAsync(String, Int32, CancellationToken)

Establece una conexión a un host remoto.

Disconnect(Boolean)

Cierra la conexión del socket y permite reutilizarlo.

DisconnectAsync(Boolean, CancellationToken)

Desconecta un socket conectado del host remoto.

DisconnectAsync(SocketAsyncEventArgs)

Comienza una solicitud asincrónica para la desconexión de un extremo remoto.

Dispose()

Libera todos los recursos usados por la instancia actual de la clase Socket.

Dispose(Boolean)

Libera los recursos no administrados que usa Socket y, de forma opcional, desecha los recursos administrados.

DuplicateAndClose(Int32)

Duplica la referencia del socket para el proceso de destino y cierra el socket para este proceso.

EndAccept(Byte[], IAsyncResult)

Acepta de forma asincrónica un intento de conexión entrante y crea un objeto Socket nuevo para controlar la comunicación con el host remoto. Este método devuelve un búfer que contiene los datos iniciales transferidos.

EndAccept(Byte[], Int32, IAsyncResult)

Acepta de forma asincrónica un intento de conexión entrante y crea un objeto Socket nuevo para controlar la comunicación con el host remoto. Este método devuelve un búfer que contiene los datos iniciales y el número de bytes transferidos.

EndAccept(IAsyncResult)

Acepta asincrónicamente un intento de conexión entrante y crea un nuevo objeto Socket para controlar la comunicación con el host remoto.

EndConnect(IAsyncResult)

Finaliza una solicitud de conexión asincrónica pendiente.

EndDisconnect(IAsyncResult)

Finaliza una solicitud de desconexión asincrónica pendiente.

EndReceive(IAsyncResult)

Finaliza una lectura asincrónica pendiente.

EndReceive(IAsyncResult, SocketError)

Finaliza una lectura asincrónica pendiente.

EndReceiveFrom(IAsyncResult, EndPoint)

Finaliza una lectura asincrónica pendiente desde un extremo específico.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Finaliza una lectura asincrónica pendiente desde un extremo específico. Este método también desvela más información sobre el paquete que EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Finaliza un envío asincrónico pendiente.

EndSend(IAsyncResult, SocketError)

Finaliza un envío asincrónico pendiente.

EndSendFile(IAsyncResult)

Finaliza un envío asincrónico de archivo pendiente.

EndSendTo(IAsyncResult)

Finaliza un envío asincrónico pendiente en una ubicación específica.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Finalize()

Libera los recursos que usa la clase Socket.

GetHashCode()

Devuelve un valor hash para una instancia de Socket.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Obtiene un valor de opción de socket mediante los identificadores de nombre y de nivel específicos de la plataforma.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Devuelve el valor de una opción de Socket especificada en forma de objeto.

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.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IOControl(Int32, Byte[], Byte[])

Establece modos operativos de bajo nivel para el Socket que utiliza códigos de control numéricos.

IOControl(IOControlCode, Byte[], Byte[])

Establece modos operativos de bajo nivel para el Socket que utiliza la enumeración IOControlCode para especificar códigos de control.

Listen()

Coloca un objeto Socket en un estado de escucha.

Listen(Int32)

Coloca un objeto Socket en un estado de escucha.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Poll(Int32, SelectMode)

Determina el estado de Socket.

Poll(TimeSpan, SelectMode)

Determina el estado de Socket.

Receive(Byte[])

Recibe datos de un Socket enlazado en un búfer de recepción.

Receive(Byte[], Int32, Int32, SocketFlags)

Recibe el número especificado de bytes de un objeto Socket enlazado en la posición de desplazamiento especificada del búfer de recepción, usando el valor de SocketFlags especificado.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Recibe datos de un Socket enlazado en un búfer de recepción, usando el valor de SocketFlags especificado.

Receive(Byte[], Int32, SocketFlags)

Recibe el número especificado de bytes de datos de un objeto Socket enlazado en un búfer de recepción, usando el valor de SocketFlags especificado.

Receive(Byte[], SocketFlags)

Recibe datos de un Socket enlazado en un búfer de recepción, usando el valor de SocketFlags especificado.

Receive(IList<ArraySegment<Byte>>)

Recibe, en la lista de búferes de recepción, datos de un Socket enlazado.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Recibe, en la lista de búferes de recepción, datos de un Socket enlazado, utilizando el valor de SocketFlags especificado.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Recibe, en la lista de búferes de recepción, datos de un Socket enlazado, utilizando el valor de SocketFlags especificado.

Receive(Span<Byte>)

Recibe datos de un Socket enlazado en un búfer de recepción.

Receive(Span<Byte>, SocketFlags)

Recibe datos de un Socket enlazado en un búfer de recepción, usando el valor de SocketFlags especificado.

Receive(Span<Byte>, SocketFlags, SocketError)

Recibe datos de un Socket enlazado en un búfer de recepción, usando el valor de SocketFlags especificado.

ReceiveAsync(ArraySegment<Byte>)

Recibe datos de un socket conectado.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Recibe datos de un socket conectado.

ReceiveAsync(IList<ArraySegment<Byte>>)

Recibe datos de un socket conectado.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Recibe datos de un socket conectado.

ReceiveAsync(Memory<Byte>, CancellationToken)

Recibe datos de un socket conectado.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Recibe datos de un socket conectado.

ReceiveAsync(SocketAsyncEventArgs)

Comienza una solicitud asincrónica para recibir los datos de un objeto Socket conectado.

ReceiveFrom(Byte[], EndPoint)

Recibe un datagrama en el búfer de datos y almacena el extremo.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el SocketFlags especificado y almacena el punto de conexión.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Recibe el número especificado de bytes en el búfer de datos mediante el marcador SocketFlags especificado y almacena el extremo.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Recibe un datagrama en el búfer de datos usando el objeto SocketFlags especificado y almacena el extremo.

ReceiveFrom(Span<Byte>, EndPoint)

Recibe un datagrama en el búfer de datos y almacena el extremo.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Recibe un datagrama en el búfer de datos usando el objeto SocketFlags especificado y almacena el extremo.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Recibe un datagrama en el búfer de datos usando el objeto SocketFlags especificado y almacena el extremo.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Recibe datos y devuelve el punto de conexión del host de envío.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Recibe datos y devuelve el punto de conexión del host de envío.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Recibe datos y devuelve el punto de conexión del host de envío.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Recibe datos y devuelve el punto de conexión del host de envío.

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Recibe un datagrama en el búfer de datos usando el objeto SocketFlags especificado y almacena el extremo.

ReceiveFromAsync(SocketAsyncEventArgs)

Comienza a recibir asincrónicamente los datos de un dispositivo de red especificado.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento SocketFlags especificado y almacena el punto de conexión y la información del paquete.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento socketFlags especificado y almacena el punto de conexión y la información del paquete.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Recibe datos y devuelve información adicional sobre el remitente del mensaje.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Recibe datos y devuelve información adicional sobre el remitente del mensaje.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Recibe datos y devuelve información adicional sobre el remitente del mensaje.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Recibe datos y devuelve información adicional sobre el remitente del mensaje.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación indicada del búfer de datos, mediante la propiedad SocketFlags especificada, y almacena la información sobre el extremo y el paquete.

Select(IList, IList, IList, Int32)

Determina el estado de uno o varios sockets.

Select(IList, IList, IList, TimeSpan)

Determina el estado de uno o varios sockets.

Send(Byte[])

Envía datos a un objeto Socket conectado.

Send(Byte[], Int32, Int32, SocketFlags)

Envía el número especificado de bytes de datos a un Socket conectado, comenzando en el desplazamiento especificado y usando el SocketFlags especificado.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Envía el número especificado de bytes de datos a un Socket conectado, comenzando en el desplazamiento especificado y usando el SocketFlags especificado.

Send(Byte[], Int32, SocketFlags)

Envía el número especificado de bytes de datos a un objeto Socket conectado, usando el marcador SocketFlags especificado.

Send(Byte[], SocketFlags)

Envía datos a un objeto Socket conectado mediante el marcador SocketFlags especificado.

Send(IList<ArraySegment<Byte>>)

Envía el conjunto de búferes de la lista a un Socket conectado.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Envía el conjunto de búferes de la lista a un Socket conectado, utilizando el SocketFlags especificado.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Envía el conjunto de búferes de la lista a un Socket conectado, utilizando el SocketFlags especificado.

Send(ReadOnlySpan<Byte>)

Envía datos a un objeto Socket conectado.

Send(ReadOnlySpan<Byte>, SocketFlags)

Envía datos a un objeto Socket conectado mediante el marcador SocketFlags especificado.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Envía datos a un objeto Socket conectado mediante el marcador SocketFlags especificado.

SendAsync(ArraySegment<Byte>)

Envía datos en un socket conectado.

SendAsync(ArraySegment<Byte>, SocketFlags)

Envía datos en un socket conectado.

SendAsync(IList<ArraySegment<Byte>>)

Envía datos en un socket conectado.

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

Envía datos en un socket conectado.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Envía datos en un socket conectado.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Envía datos en un socket conectado.

SendAsync(SocketAsyncEventArgs)

Envía datos de forma asincrónica a un objeto Socket conectado.

SendFile(String)

Envía el archivo fileName a un objeto Socket conectado con el marcador de transmisión UseDefaultWorkerThread.

SendFile(String, Byte[], Byte[], TransmitFileOptions)

Envía el archivo fileName y búferes de datos a un objeto Socket conectado mediante el valor TransmitFileOptions especificado.

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

Envía el archivo fileName y búferes de datos a un objeto Socket conectado mediante el valor TransmitFileOptions especificado.

SendFileAsync(String, CancellationToken)

Envía el archivo fileName a un objeto conectado Socket .

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

Envía el archivo fileName y búferes de datos a un objeto Socket conectado mediante el valor TransmitFileOptions especificado.

SendPacketsAsync(SocketAsyncEventArgs)

Envía de forma asincrónica una colección de archivos o búferes de datos en memoria a un objeto Socket conectado.

SendTo(Byte[], EndPoint)

Envía los datos al extremo especificado.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Envía el número especificado de bytes de datos al extremo especificado, comenzando en la ubicación especificada del búfer y usando los SocketFlags especificados.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Envía el número especificado de bytes de datos al extremo especificado usando los SocketFlags especificados.

SendTo(Byte[], SocketFlags, EndPoint)

Envía datos a un extremo específico mediante el marcador SocketFlags especificado.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Envía los datos al extremo especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Envía datos a un extremo específico mediante el marcador SocketFlags especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Envía datos a un extremo específico mediante el marcador SocketFlags especificado.

SendToAsync(ArraySegment<Byte>, EndPoint)

Envía datos al host remoto especificado.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Envía datos al host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Envía datos al host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Envía datos al host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Envía datos a un extremo específico mediante el marcador SocketFlags especificado.

SendToAsync(SocketAsyncEventArgs)

Envía datos de forma asincrónica a un host remoto concreto.

SetIPProtectionLevel(IPProtectionLevel)

Establece el nivel de protección IP en un socket.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Establece un valor de opción de socket mediante los identificadores de nombre y de nivel específicos de la plataforma.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Establece la opción de Socket especificada en el valor de Boolean indicado.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Establece la opción de Socket indicada en el valor especificado, representado como una matriz de bytes.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Establece la opción de Socket especificada en el valor entero indicado.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Establece la opción de Socket indicada en el valor especificado, representado como un objeto.

Shutdown(SocketShutdown)

Deshabilita los envíos y recepciones en un objeto Socket.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código.

Libera todos los recursos que usa Socket.

Métodos de extensión

AcceptAsync(Socket)

Realiza una operación asincrónica para aceptar un intento de conexión entrante en el socket.

AcceptAsync(Socket, Socket)

Realiza una operación asincrónica para aceptar un intento de conexión entrante en el socket.

ConnectAsync(Socket, EndPoint)

Establece una conexión a un host remoto.

ConnectAsync(Socket, EndPoint, CancellationToken)

Establece una conexión a un host remoto.

ConnectAsync(Socket, IPAddress, Int32)

Establece una conexión a un host remoto. El host se especifica mediante una dirección IP y un número de puerto.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Establece una conexión a un host remoto, que se especifica mediante una dirección IP y un número de puerto.

ConnectAsync(Socket, IPAddress[], Int32)

Establece una conexión a un host remoto. El host se especifica mediante una matriz de direcciones IP y un número de puerto.

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

Establece una conexión a un host remoto, especificado por una matriz de direcciones IP y un número de puerto.

ConnectAsync(Socket, String, Int32)

Establece una conexión a un host remoto. El host se especifica mediante un nombre de host y un número de puerto.

ConnectAsync(Socket, String, Int32, CancellationToken)

Establece una conexión a un host remoto, que se especifica mediante un nombre de host y un número de puerto.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Recibe datos de un socket conectado.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Recibe datos de un socket conectado.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

Recibe datos de un socket conectado.

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Recibe datos de un dispositivo de red especificado.

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento SocketFlags especificado y almacena el punto de conexión y la información del paquete.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Envía datos a un socket conectado.

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Envía datos a un socket conectado.

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Envía datos a un socket conectado.

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Envía datos de forma asincrónica a un host remoto concreto.

Se aplica a

Seguridad para subprocesos

Es seguro realizar una operación de envío y recepción simultáneamente en una Socket instancia de , pero no se recomienda emitir varias llamadas de envío o de recepción simultáneamente. En función de la implementación de la plataforma subyacente, esto puede provocar la intercalación de datos no deseados para envíos o recepcións de varios búferes o grandes.

Consulte también