Compartilhar via


UdpClient Classe

Definição

Fornece serviços de rede do protocolo UDP.

public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
    interface IDisposable
Public Class UdpClient
Implements IDisposable
Herança
UdpClient
Implementações

Exemplos

O exemplo a seguir estabelece uma UdpClient conexão usando o nome www.contoso.com do host na porta 11000. Uma pequena mensagem de cadeia de caracteres é enviada para dois computadores host remotos separados. O Receive método bloqueia a execução até que uma mensagem seja recebida. Usando o IPEndPoint passado para Receive, a identidade do host que responde é revelada.

// 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

Comentários

A UdpClient classe fornece métodos simples para enviar e receber datagramas UDP sem conexão no modo síncrono de bloqueio. Como o UDP é um protocolo de transporte sem conexão, você não precisa estabelecer uma conexão de host remoto antes de enviar e receber dados. No entanto, você tem a opção de estabelecer um host remoto padrão de uma das duas maneiras a seguir:

  • Create uma instância da UdpClient classe usando o nome do host remoto e o número da porta como parâmetros.

  • Create uma instância da UdpClient classe e, em seguida, chame o Connect método .

Você pode usar qualquer um dos métodos de envio fornecidos no UdpClient para enviar dados para um dispositivo remoto. Use o Receive método para receber dados de hosts remotos.

Observação

Não chame Send usando um nome de host ou IPEndPoint se você já tiver especificado um host remoto padrão. Se você fizer isso, UdpClient gerará uma exceção.

UdpClient os métodos também permitem que você envie e receba datagramas multicast. Use o JoinMulticastGroup método para assinar um UdpClient grupo multicast. Use o DropMulticastGroup método para cancelar a assinatura de um UdpClient grupo multicast.

Construtores

UdpClient()

Inicializa uma nova instância da classe UdpClient.

UdpClient(AddressFamily)

Inicializa uma nova instância da classe UdpClient.

UdpClient(Int32)

Inicializa uma nova instância da classe UdpClient e a associa ao número da porta local fornecido.

UdpClient(Int32, AddressFamily)

Inicializa uma nova instância da classe UdpClient e a associa ao número da porta local fornecido.

UdpClient(IPEndPoint)

Inicializa uma nova instância da classe UdpClient e a associa ao ponto de extremidade local especificado.

UdpClient(String, Int32)

Inicializa uma nova instância da classe UdpClient e estabelece um host remoto padrão.

Propriedades

Active

Obtém ou define um valor que indica se um host remoto padrão foi estabelecido.

Available

Obtém a quantidade de dados recebidos da rede e disponíveis para leitura.

Client

Obtém ou define a rede Socket subjacente.

DontFragment

Obtém ou define um valor Boolean que especifica se o UdpClient permite que datagramas de protocolo IP sejam fragmentados.

EnableBroadcast

Obtém ou define um Boolean valor que especifica se o UdpClient pode enviar pacotes de difusão.

ExclusiveAddressUse

Obtém ou define um valor Boolean que especifica se o UdpClient permite que um único cliente use uma porta.

MulticastLoopback

Obtém ou define um valor Boolean que especifica se os pacotes multicast de saída são entregues para o aplicativo de envio.

Ttl

Obtém ou define um valor que especifica o valor TTL (Vida Útil) de pacotes IP (Protocolo de Internet) enviados pelo UdpClient.

Métodos

AllowNatTraversal(Boolean)

Habilita ou desabilita a passagem de NAT (Conversão de Endereços de Rede) em uma instância de UdpClient.

BeginReceive(AsyncCallback, Object)

Recebe um datagrama de um host remoto de forma assíncrona.

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

Envia um datagrama para um host remoto de forma assíncrona. O destino foi especificado anteriormente por uma chamada para Connect.

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

Envia um datagrama para um destino de forma assíncrona. O destino é especificado por um EndPoint.

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

Envia um datagrama para um destino de forma assíncrona. O destino é especificado pelo nome do host e número da porta.

Close()

Fecha a conexão UDP.

Connect(IPAddress, Int32)

Estabelece um host remoto padrão usando o endereço IP e o número da porta especificados.

Connect(IPEndPoint)

Estabelece um host remoto padrão usando o ponto de extremidade de rede especificado.

Connect(String, Int32)

Estabelece um host remoto padrão usando o nome e o número da porta do host especificados.

Dispose()

Libera os recursos gerenciados e não gerenciados usados pelo UdpClient.

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo UdpClient e opcionalmente libera os recursos gerenciados.

DropMulticastGroup(IPAddress)

Sai de um grupo de multicast.

DropMulticastGroup(IPAddress, Int32)

Sai de um grupo de multicast.

EndReceive(IAsyncResult, IPEndPoint)

Encerra um recebimento assíncrono pendente.

EndSend(IAsyncResult)

Encerra um envio assíncrono pendente.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
JoinMulticastGroup(Int32, IPAddress)

Adiciona um UdpClient para um grupo de multicast.

JoinMulticastGroup(IPAddress)

Adiciona um UdpClient para um grupo de multicast.

JoinMulticastGroup(IPAddress, Int32)

Adiciona um UdpClient para um grupo de multicast com a TTL (vida útil) especificada.

JoinMulticastGroup(IPAddress, IPAddress)

Adiciona um UdpClient para um grupo de multicast.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Receive(IPEndPoint)

Retorna um datagrama UDP que foi enviado por um host remoto.

ReceiveAsync()

Retorna um datagrama UDP de forma assíncrona que foi enviado por um host remoto.

ReceiveAsync(CancellationToken)

Retorna um datagrama UDP de forma assíncrona que foi enviado por um host remoto.

Send(Byte[], Int32)

Envia um datagrama UDP para um host remoto.

Send(Byte[], Int32, IPEndPoint)

Envia um datagrama UDP para o host no ponto de extremidade remoto especificado.

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

Envia um datagrama UDP para uma porta especificada em um host remoto especificado.

Send(ReadOnlySpan<Byte>)

Envia um datagrama UDP para um host remoto.

Send(ReadOnlySpan<Byte>, IPEndPoint)

Envia um datagrama UDP para o host no ponto de extremidade remoto especificado.

Send(ReadOnlySpan<Byte>, String, Int32)

Envia um datagrama UDP para uma porta especificada em um host remoto especificado.

SendAsync(Byte[], Int32)

Envia um datagrama UDP de maneira assíncrona para um host remoto.

SendAsync(Byte[], Int32, IPEndPoint)

Envia um datagrama UDP de maneira assíncrona para um host remoto.

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

Envia um datagrama UDP de maneira assíncrona para um host remoto.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Envia um datagrama UDP de maneira assíncrona para um host remoto.

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Envia um datagrama UDP de maneira assíncrona para um host remoto.

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

Envia um datagrama UDP de maneira assíncrona para um host remoto.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IDisposable.Dispose()

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

Libera todos os recursos usados pelo UdpClient.

Aplica-se a

Confira também