UdpClient Clase

Definición

Proporciona servicios de red de Protocolo de datagramas de usuarios (UDP).

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

Ejemplos

En el ejemplo siguiente se establece una UdpClient conexión con el nombre www.contoso.com de host en el puerto 11000. Se envía un mensaje de cadena pequeño a dos máquinas host remotas independientes. El método bloquea la Receive ejecución hasta que se recibe un mensaje. Con el IPEndPoint objeto pasado a Receive, se revela la identidad del host de respuesta.

// With this constructor the local port number is arbitrarily assigned.
UdpClient^ udpClient = gcnew UdpClient;
try
{
   udpClient->Connect( "host.contoso.com", 11000 );

   // Send message to the host to which you have connected.
   array<Byte>^sendBytes = Encoding::ASCII->GetBytes( "Is anybody there?" );
   udpClient->Send( sendBytes, sendBytes->Length );

   // Send message to a different host using optional hostname and port parameters.
   UdpClient^ udpClientB = gcnew UdpClient;
   udpClientB->Send( sendBytes, sendBytes->Length, "AlternateHostMachineName", 11000 );

   //IPEndPoint object will allow us to read datagrams sent from any source.
   IPEndPoint^ RemoteIpEndPoint = gcnew IPEndPoint( IPAddress::Any,0 );

   // Block until a message returns on this socket from a remote host.
   array<Byte>^receiveBytes = udpClient->Receive( RemoteIpEndPoint );
   String^ returnData = Encoding::ASCII->GetString( receiveBytes );

   // Use the IPEndPoint object to determine which of these two hosts responded.
   Console::WriteLine( String::Concat( "This is the message you received ", returnData->ToString() ) );
   Console::WriteLine( String::Concat( "This message was sent from ", RemoteIpEndPoint->Address->ToString(), " on their port number ", RemoteIpEndPoint->Port.ToString() ) );
   udpClient->Close();
   udpClientB->Close();
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
// This constructor arbitrarily assigns the local port number.
UdpClient udpClient = new UdpClient(11000);
    try{
         udpClient.Connect("www.contoso.com", 11000);

         // Sends a message to the host to which you have connected.
         Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");

         udpClient.Send(sendBytes, sendBytes.Length);

         // Sends a message to a different host using optional hostname and port parameters.
         UdpClient udpClientB = new UdpClient();
         udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 11000);

         //IPEndPoint object will allow us to read datagrams sent from any source.
         IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);

         // Blocks until a message returns on this socket from a remote host.
         Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
         string returnData = Encoding.ASCII.GetString(receiveBytes);

         // Uses the IPEndPoint object to determine which of these two hosts responded.
         Console.WriteLine("This is the message you received " +
                                      returnData.ToString());
         Console.WriteLine("This message was sent from " +
                                     RemoteIpEndPoint.Address.ToString() +
                                     " on their port number " +
                                     RemoteIpEndPoint.Port.ToString());

          udpClient.Close();
          udpClientB.Close();
          }
       catch (Exception e ) {
                  Console.WriteLine(e.ToString());
        }
     ' This constructor arbitrarily assigns the local port number.
     Dim udpClient As New UdpClient(11000)
     Try
        udpClient.Connect("www.contoso.com", 11000)
        
        ' Sends a message to the host to which you have connected.
        Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there?")
        
        udpClient.Send(sendBytes, sendBytes.Length)
        
        ' Sends message to a different host using optional hostname and port parameters.
        Dim udpClientB As New UdpClient()
        udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 11000)
        
        ' IPEndPoint object will allow us to read datagrams sent from any source.
        Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
        
        ' UdpClient.Receive blocks until a message is received from a remote host.
        Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)
        Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
        
        ' Which one of these two hosts responded?
        Console.WriteLine(("This is the message you received " + _
                                      returnData.ToString()))
         Console.WriteLine(("This message was sent from " + _
                                      RemoteIpEndPoint.Address.ToString() + _ 
                                      " on their port number " + _
                                      RemoteIpEndPoint.Port.ToString()))
        udpClient.Close()
        udpClientB.Close()

     Catch e As Exception
        Console.WriteLine(e.ToString())
     End Try
  End Sub

Comentarios

La UdpClient clase proporciona métodos sencillos para enviar y recibir datagramas UDP sin conexión en modo sincrónico de bloqueo. Dado que UDP es un protocolo de transporte sin conexión, no es necesario establecer una conexión de host remota antes de enviar y recibir datos. Sin embargo, tiene la opción de establecer un host remoto predeterminado de una de las dos maneras siguientes:

  • Cree una instancia de la UdpClient clase con el nombre de host remoto y el número de puerto como parámetros.

  • Cree una instancia de la UdpClient clase y, a continuación, llame al Connect método .

Puede usar cualquiera de los métodos de envío proporcionados en UdpClient para enviar datos a un dispositivo remoto. Use el Receive método para recibir datos de hosts remotos.

Nota:

No llame a Send mediante un nombre de host o IPEndPoint si ya ha especificado un host remoto predeterminado. Si lo hace, UdpClient producirá una excepción.

UdpClient los métodos también permiten enviar y recibir datagramas de multidifusión. Use el JoinMulticastGroup método para suscribirse UdpClient a un grupo de multidifusión. Use el método para cancelar la DropMulticastGroup suscripción de un UdpClient grupo de multidifusión.

Constructores

UdpClient()

Inicializa una nueva instancia de la clase UdpClient.

UdpClient(AddressFamily)

Inicializa una nueva instancia de la clase UdpClient.

UdpClient(Int32)

Inicializa una nueva instancia de la clase UdpClient y la enlaza con el número de puerto local especificado.

UdpClient(Int32, AddressFamily)

Inicializa una nueva instancia de la clase UdpClient y la enlaza con el número de puerto local especificado.

UdpClient(IPEndPoint)

Inicializa una nueva instancia de la clase UdpClient y la enlaza con el punto de conexión local especificado.

UdpClient(String, Int32)

Inicializa una nueva instancia de la clase UdpClient y establece un host remoto predeterminado.

Propiedades

Active

Obtiene o establece un valor que indica si se ha establecido un host remoto predeterminado.

Available

Obtiene la cantidad de datos recibidos de la red que se pueden leer.

Client

Obtiene o establece el Socket de red subyacente.

DontFragment

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

EnableBroadcast

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

ExclusiveAddressUse

Obtiene o establece un valor Boolean que especifica si el UdpClient permite a un único cliente usar un puerto.

MulticastLoopback

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

Ttl

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

Métodos

AllowNatTraversal(Boolean)

Habilita o deshabilita NAT (Traducción de direcciones de red) transversal en una instancia de UdpClient.

BeginReceive(AsyncCallback, Object)

Recibe un datagrama de un host remoto de forma asincrónica.

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

Envía un datagrama a un host remoto de forma asincrónica. El destino se especificó anteriormente mediante una llamada a Connect.

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

Envía un datagrama a un destino de forma asincrónica. EndPoint especifica el destino.

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

Envía un datagrama a un destino de forma asincrónica. El nombre de host y el número de puerto especifican el destino.

Close()

Cierra la conexión UDP.

Connect(IPAddress, Int32)

Establece un host remoto predeterminado mediante la dirección IP y el número de puerto especificados.

Connect(IPEndPoint)

Establece un host remoto predeterminado mediante el extremo de red especificado.

Connect(String, Int32)

Establece un host remoto predeterminado mediante el nombre de host y el número de puerto especificados.

Dispose()

Libera los recursos administrados y no administrados que utiliza el objeto UdpClient.

Dispose(Boolean)

Libera los recursos no administrados que usa UdpClient y, de forma opcional, libera los recursos administrados.

DropMulticastGroup(IPAddress)

Abandona un grupo de multidifusión.

DropMulticastGroup(IPAddress, Int32)

Abandona un grupo de multidifusión.

EndReceive(IAsyncResult, IPEndPoint)

Finaliza una recepción asincrónica pendiente.

EndSend(IAsyncResult)

Finaliza un envío asincrónico pendiente.

Equals(Object)

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

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
JoinMulticastGroup(Int32, IPAddress)

Agrega una clase UdpClient a un grupo de multidifusión.

JoinMulticastGroup(IPAddress)

Agrega una clase UdpClient a un grupo de multidifusión.

JoinMulticastGroup(IPAddress, Int32)

Agrega una clase UdpClient a un grupo de multidifusión con el período de vida (TTL) especificado.

JoinMulticastGroup(IPAddress, IPAddress)

Agrega una clase UdpClient a un grupo de multidifusión.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Receive(IPEndPoint)

Devuelve un datagrama UDP enviado por un host remoto.

ReceiveAsync()

Devuelve de forma asincrónica un datagrama UDP enviado por un host remoto.

ReceiveAsync(CancellationToken)

Devuelve de forma asincrónica un datagrama UDP enviado por un host remoto.

Send(Byte[], Int32)

Envía un datagrama UDP a un host remoto.

Send(Byte[], Int32, IPEndPoint)

Envía un datagrama UDP al host en el punto de conexión remoto especificado.

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

Envía un datagrama UDP a un puerto específico en un host remoto especificado.

Send(ReadOnlySpan<Byte>)

Envía un datagrama UDP a un host remoto.

Send(ReadOnlySpan<Byte>, IPEndPoint)

Envía un datagrama UDP al host en el punto de conexión remoto especificado.

Send(ReadOnlySpan<Byte>, String, Int32)

Envía un datagrama UDP a un puerto específico en un host remoto especificado.

SendAsync(Byte[], Int32)

Envía un datagrama UDP a un host remoto de forma asincrónica.

SendAsync(Byte[], Int32, IPEndPoint)

Envía un datagrama UDP a un host remoto de forma asincrónica.

SendAsync(Byte[], Int32, String, Int32)

Envía un datagrama UDP a un host remoto de forma asincrónica.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Envía un datagrama UDP a un host remoto de forma asincrónica.

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Envía un datagrama UDP a un host remoto de forma asincrónica.

SendAsync(ReadOnlyMemory<Byte>, String, Int32, CancellationToken)

Envía un datagrama UDP a un host remoto de forma asincrónica.

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 UdpClient.

Se aplica a

Consulte también