Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Socket

 

Publicado: octubre de 2016

Implementa la interfaz de sockets Berkeley.

Espacio de nombres:   System.Net.Sockets
Ensamblado:  System (en System.dll)

System.Object
  System.Net.Sockets.Socket

public class Socket : IDisposable

NombreDescripción
System_CAPS_pubmethodSocket(AddressFamily, SocketType, ProtocolType)

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

System_CAPS_pubmethodSocket(SocketInformation)

Inicializa una nueva instancia de la Socket con el valor devuelto de la clase DuplicateAndClose.

System_CAPS_pubmethodSocket(SocketType, ProtocolType)

Inicializa una nueva instancia de la Socket clase mediante el protocolo y el tipo de socket especificado.

NombreDescripción
System_CAPS_pubpropertyAddressFamily

Obtiene la familia de direcciones de la Socket.

System_CAPS_pubpropertyAvailable

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

System_CAPS_pubpropertyBlocking

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

System_CAPS_pubpropertyConnected

Obtiene un valor que indica si un Socket está conectado a un host remoto desde la última Send o Receive operación.

System_CAPS_pubpropertyDontFragment

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

System_CAPS_pubpropertyDualMode

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

System_CAPS_pubpropertyEnableBroadcast

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

System_CAPS_pubpropertyExclusiveAddressUse

Obtiene o establece un Boolean valor que especifica si el Socket permite enlazar a un puerto de un solo proceso.

System_CAPS_pubpropertyHandle

Obtiene el identificador de sistema operativo para el Socket.

System_CAPS_pubpropertyIsBound

Obtiene un valor que indica si la Socket está enlazado a un puerto local específico.

System_CAPS_pubpropertyLingerState

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

System_CAPS_pubpropertyLocalEndPoint

Obtiene el extremo local.

System_CAPS_pubpropertyMulticastLoopback

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

System_CAPS_pubpropertyNoDelay

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

System_CAPS_pubpropertySystem_CAPS_staticOSSupportsIPv4

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

System_CAPS_pubpropertySystem_CAPS_staticOSSupportsIPv6

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

System_CAPS_pubpropertyProtocolType

Obtiene el tipo de protocolo de la Socket.

System_CAPS_pubpropertyReceiveBufferSize

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

System_CAPS_pubpropertyReceiveTimeout

Obtiene o establece un valor que especifica la cantidad de tiempo después del cual sincrónica Receive llamada agotará el tiempo.

System_CAPS_pubpropertyRemoteEndPoint

Obtiene el extremo remoto.

System_CAPS_pubpropertySendBufferSize

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

System_CAPS_pubpropertySendTimeout

Obtiene o establece un valor que especifica la cantidad de tiempo después del cual sincrónica Send llamada agotará el tiempo.

System_CAPS_pubpropertySocketType

Obtiene el tipo de Socket.

System_CAPS_pubpropertySystem_CAPS_staticSupportsIPv4

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

System_CAPS_pubpropertySystem_CAPS_staticSupportsIPv6

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

System_CAPS_pubpropertyTtl

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

System_CAPS_pubpropertyUseOnlyOverlappedIO

Especifica si el socket debe utilizar únicamente el modo de E/S superpuesta.

NombreDescripción
System_CAPS_pubmethodAccept()

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

System_CAPS_pubmethodAcceptAsync(SocketAsyncEventArgs)

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

System_CAPS_pubmethodBeginAccept(AsyncCallback, Object)

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

System_CAPS_pubmethodBeginAccept(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.

System_CAPS_pubmethodBeginAccept(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.

System_CAPS_pubmethodBeginConnect(EndPoint, AsyncCallback, Object)

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

System_CAPS_pubmethodBeginConnect(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.

System_CAPS_pubmethodBeginConnect(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.

System_CAPS_pubmethodBeginConnect(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.

System_CAPS_pubmethodBeginDisconnect(Boolean, AsyncCallback, Object)

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

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

Comienza a recibir asincrónicamente los datos desde una conexión Socket.

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

Comienza a recibir asincrónicamente los datos desde una conexión Socket.

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

Comienza a recibir asincrónicamente los datos desde una conexión Socket.

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

Comienza a recibir asincrónicamente los datos desde una conexión Socket.

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

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

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

Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación especificada del búfer de datos, utilizando el parámetro SocketFlags, y almacena el extremo e información sobre paquetes...

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

Envía datos asincrónicamente a una conexión Socket.

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

Envía datos asincrónicamente a una conexión Socket.

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

Envía datos asincrónicamente a una conexión Socket.

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

Envía datos asincrónicamente a una conexión Socket.

System_CAPS_pubmethodBeginSendFile(String, AsyncCallback, Object)

Envía el archivo fileName a una conexión Socket utilizando la UseDefaultWorkerThread marca.

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

Envía un archivo y búferes de datos de forma asincrónica a una conexión Socket objeto.

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

Envía datos asincrónicamente a un determinado host remoto.

System_CAPS_pubmethodBind(EndPoint)

Asocia un Socket con un extremo local.

System_CAPS_pubmethodSystem_CAPS_staticCancelConnectAsync(SocketAsyncEventArgs)

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

System_CAPS_pubmethodClose()

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

System_CAPS_pubmethodClose(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.

System_CAPS_pubmethodConnect(EndPoint)

Establece una conexión a un host remoto.

System_CAPS_pubmethodConnect(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.

System_CAPS_pubmethodConnect(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.

System_CAPS_pubmethodConnect(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.

System_CAPS_pubmethodConnectAsync(SocketAsyncEventArgs)

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

System_CAPS_pubmethodSystem_CAPS_staticConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

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

System_CAPS_pubmethodDisconnect(Boolean)

Cierra la conexión del socket y permite la reutilización del socket.

System_CAPS_pubmethodDisconnectAsync(SocketAsyncEventArgs)

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

System_CAPS_pubmethodDispose()

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

System_CAPS_protmethodDispose(Boolean)

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

System_CAPS_pubmethodDuplicateAndClose(Int32)

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

System_CAPS_pubmethodEndAccept(Byte[], IAsyncResult)

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

System_CAPS_pubmethodEndAccept(Byte[], Int32, IAsyncResult)

Acepta un intento de conexión entrante de forma asincrónica y crea un nuevo Socket objeto 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.

System_CAPS_pubmethodEndAccept(IAsyncResult)

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

System_CAPS_pubmethodEndConnect(IAsyncResult)

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

System_CAPS_pubmethodEndDisconnect(IAsyncResult)

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

System_CAPS_pubmethodEndReceive(IAsyncResult)

Finaliza una lectura asincrónica pendiente.

System_CAPS_pubmethodEndReceive(IAsyncResult, SocketError)

Finaliza una lectura asincrónica pendiente.

System_CAPS_pubmethodEndReceiveFrom(IAsyncResult, EndPoint)

Finaliza una lectura asincrónica pendiente de un extremo concreto.

System_CAPS_pubmethodEndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Finaliza una lectura asincrónica pendiente de un extremo concreto. Este método también desvela más información sobre el paquete de EndReceiveFrom.

System_CAPS_pubmethodEndSend(IAsyncResult)

Finaliza un envío asincrónico pendiente.

System_CAPS_pubmethodEndSend(IAsyncResult, SocketError)

Finaliza un envío asincrónico pendiente.

System_CAPS_pubmethodEndSendFile(IAsyncResult)

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

System_CAPS_pubmethodEndSendTo(IAsyncResult)

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

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Libera los recursos que usa la clase Socket.(Invalida Object.Finalize()).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetSocketOption(SocketOptionLevel, SocketOptionName)

Devuelve el valor de un objeto Socket opción, representado como un objeto.

System_CAPS_pubmethodGetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Devuelve el Socket la opción de configuración, representado como una matriz de bytes.

System_CAPS_pubmethodGetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Devuelve el valor de especificado Socket opción en una matriz.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIOControl(Int32, Byte[], Byte[])

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

System_CAPS_pubmethodIOControl(IOControlCode, Byte[], Byte[])

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

System_CAPS_pubmethodListen(Int32)

Coloca un Socket en estado de escucha.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodPoll(Int32, SelectMode)

Determina el estado de la Socket.

System_CAPS_pubmethodReceive(Byte[])

Recibe datos de un límite Socket en un búfer de recepción.

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

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

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

Recibe datos de un límite Socket en un búfer de recepción, usando el objeto SocketFlags.

System_CAPS_pubmethodReceive(Byte[], Int32, SocketFlags)

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

System_CAPS_pubmethodReceive(Byte[], SocketFlags)

Recibe datos de un límite Socket en un búfer de recepción, usando el objeto SocketFlags.

System_CAPS_pubmethodReceive(IList<ArraySegment<Byte>>)

Recibe datos de un límite Socket en la lista de búferes de recepción.

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

Recibe datos de un límite Socket en la lista de búferes de recepción, usando el objeto SocketFlags.

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

Recibe datos de un límite Socket en la lista de búferes de recepción, usando el objeto SocketFlags.

System_CAPS_pubmethodReceiveAsync(SocketAsyncEventArgs)

Inicia una solicitud asincrónica para recibir datos desde una conexión Socket objeto.

System_CAPS_pubmethodReceiveFrom(Byte[], EndPoint)

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

System_CAPS_pubmethodReceiveFrom(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.

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

Recibe el número especificado de bytes en el búfer de datos usando el objeto SocketFlags, y almacena el extremo.

System_CAPS_pubmethodReceiveFrom(Byte[], SocketFlags, EndPoint)

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

System_CAPS_pubmethodReceiveFromAsync(SocketAsyncEventArgs)

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

System_CAPS_pubmethodReceiveMessageFrom(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, utilizando el parámetro SocketFlags, y almacena el extremo e información sobre paquetes.

System_CAPS_pubmethodReceiveMessageFromAsync(SocketAsyncEventArgs)

Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación especificada en el búfer de datos usando el objeto SocketAsyncEventArgs.SocketFlags, y almacena el extremo e información sobre paquetes.

System_CAPS_pubmethodSystem_CAPS_staticSelect(IList, IList, IList, Int32)

Determina el estado de uno o varios sockets.

System_CAPS_pubmethodSend(Byte[])

Envía datos a una conexión Socket.

System_CAPS_pubmethodSend(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.

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

Envía el número especificado de bytes de datos a una conexión Socket, comenzando en el desplazamiento especificado y usando el objeto SocketFlags

System_CAPS_pubmethodSend(Byte[], Int32, SocketFlags)

Envía el número especificado de bytes de datos a una conexión Socket, usando el objeto SocketFlags.

System_CAPS_pubmethodSend(Byte[], SocketFlags)

Envía datos a una conexión Socket utilizando el parámetro SocketFlags.

System_CAPS_pubmethodSend(IList<ArraySegment<Byte>>)

Envía el conjunto de búferes de la lista a una conexión Socket.

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

Envía el conjunto de búferes de la lista a una conexión Socket, usando el objeto SocketFlags.

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

Envía el conjunto de búferes de la lista a una conexión Socket, usando el objeto SocketFlags.

System_CAPS_pubmethodSendAsync(SocketAsyncEventArgs)

Envía datos asincrónicamente a una conexión Socket objeto.

System_CAPS_pubmethodSendFile(String)

Envía el archivo fileName a una conexión Socket de objeto con el UseDefaultWorkerThread indicador de transmisión.

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

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

System_CAPS_pubmethodSendPacketsAsync(SocketAsyncEventArgs)

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

System_CAPS_pubmethodSendTo(Byte[], EndPoint)

Envía datos al extremo especificado.

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

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

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

Envía el número especificado de bytes de datos al extremo especificado utilizando el parámetro SocketFlags.

System_CAPS_pubmethodSendTo(Byte[], SocketFlags, EndPoint)

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

System_CAPS_pubmethodSendToAsync(SocketAsyncEventArgs)

Envía datos asincrónicamente a un determinado host remoto.

System_CAPS_pubmethodSetIPProtectionLevel(IPProtectionLevel)

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

System_CAPS_pubmethodSetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Establece el Socket opción especificado Boolean valor.

System_CAPS_pubmethodSetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

System_CAPS_pubmethodSetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Establece el Socket opción al valor entero especificado.

System_CAPS_pubmethodSetSocketOption(SocketOptionLevel, SocketOptionName, Object)

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

System_CAPS_pubmethodShutdown(SocketShutdown)

Deshabilita los envíos y recepciones en un Socket.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

La Socket clase proporciona un amplio conjunto de métodos y propiedades para las comunicaciones de red. La Socket clase le permite realizar ambos sincrónica y transferencias de datos asincrónicas mediante cualquiera de los protocolos de comunicación que se enumeran en la ProtocolType (enumeración).

La Socket clase sigue el patrón de nomenclatura de .NET Framework para los métodos asincrónicos. Por ejemplo, sincrónico Receive método corresponde a la asincrónica BeginReceive y EndReceive métodos.

Si la aplicación sólo requiere un subproceso durante la ejecución, utilice los métodos siguientes, que están diseñados para el modo de funcionamiento sincrónico.

  • Si utiliza un protocolo orientado a conexiones como TCP, el servidor puede escuchar las conexiones mediante el Listen método. El Accept método procesa las solicitudes de cualquier conexión entrante y devuelve un Socket que puede usar para intercambiar datos con el host remoto. Use este valor devuelto Socket para llamar a la Send o Receive (método). Llame a la Bind método antes de llamar a la Listen método si desea especificar el número de puerto y la dirección IP local. Utilice un número de puerto de cero si desea que el proveedor de servicios subyacente para asignar un puerto libre. Si desea conectarse a un host de escucha, llame a la Connect (método). Para comunicar datos, llame a la Send o Receive (método).

  • Si utiliza un protocolo sin conexión como UDP, no es necesario escuchar las conexiones en absoluto. Llame a la ReceiveFrom método para aceptar los datagramas entrantes. Utilice la SendTo método para enviar datagramas a un host remoto.

Para procesar las comunicaciones mediante diferentes subprocesos durante la ejecución, utilice los métodos siguientes, que están diseñados para el modo de operación asincrónica.

Si realiza varias operaciones asincrónicas en un socket, no necesariamente se completan en el orden en que se inician.

Cuando haya terminado de enviar y recibir datos, use la Shutdown método para deshabilitar la Socket. Después de llamar a Shutdown, llame a la Close método para liberar todos los recursos asociados con la Socket.

La Socket clase le permite configurar su Socket utilizando la SetSocketOption (método). Recuperar estos valores mediante la GetSocketOption método.

System_CAPS_noteNota

Si está escribiendo una aplicación relativamente sencilla y no requieren un rendimiento máximo, considere el uso de TcpClient, TcpListener, y UdpClient. Estas clases proporcionan una interfaz más sencilla y más fácil de usar para Socket communications.

El siguiente ejemplo de código muestra cómo el Socket clase puede utilizarse para enviar datos a un servidor HTTP y recibir la respuesta. En este ejemplo se bloquea hasta que se recibe la página completa.

using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class GetSocket
{
    private static Socket ConnectSocket(string server, int port)
    {
        Socket s = null;
        IPHostEntry hostEntry = null;

        // Get host related information.
        hostEntry = Dns.GetHostEntry(server);

        // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
        // an exception that occurs when the host IP Address is not compatible with the address family
        // (typical in the IPv6 case).
        foreach(IPAddress address in hostEntry.AddressList)
        {
            IPEndPoint ipe = new IPEndPoint(address, port);
            Socket tempSocket = 
                new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipe);

            if(tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }
        return s;
    }

    // This method requests the home page content for the specified server.
    private static string SocketSendReceive(string server, int port) 
    {
        string request = "GET / HTTP/1.1\r\nHost: " + server + 
            "\r\nConnection: Close\r\n\r\n";
        Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
        Byte[] bytesReceived = new Byte[256];

        // Create a socket connection with the specified server and port.
        Socket s = ConnectSocket(server, port);

        if (s == null)
            return ("Connection failed");

        // Send request to the server.
        s.Send(bytesSent, bytesSent.Length, 0);  

        // Receive the server home page content.
        int bytes = 0;
        string page = "Default HTML page on " + server + ":\r\n";

        // The following will block until te page is transmitted.
        do {
            bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
        }
        while (bytes > 0);

        return page;
    }

    public static void Main(string[] args) 
    {
        string host;
        int port = 80;

        if (args.Length == 0)
            // If no server name is passed as argument to this program, 
            // use the current host name as the default.
            host = Dns.GetHostName();
        else
            host = args[0];

        string result = SocketSendReceive(host, port); 
        Console.WriteLine(result);
    }
}

SocketPermission

To establish an outgoing connection or accept an incoming request.

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.1

Instancias de esta clase son seguros para subprocesos.

Volver al principio
Mostrar: