UdpClient Classe

Definizione

Vengono forniti servizi di rete UDP (User Datagram Protocol).Provides User Datagram Protocol (UDP) network services.

public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
    interface IDisposable
Public Class UdpClient
Implements IDisposable
Ereditarietà
UdpClient
Implementazioni

Esempi

Nell'esempio seguente viene stabilita una UdpClient connessione utilizzando il nome www.contoso.com host sulla porta 11000.The following example establishes a UdpClient connection using the host name www.contoso.com on port 11000. Un messaggio stringa di piccole dimensioni viene inviato a due computer host remoti separati.A small string message is sent to two separate remote host machines. Il Receive metodo blocca l'esecuzione fino a quando non viene ricevuto un messaggio.The Receive method blocks execution until a message is received. Utilizzando l' IPEndPoint oggetto passato Receivea, viene rilevata l'identità dell'host che risponde.Using the IPEndPoint passed to Receive, the identity of the responding host is revealed.

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

Commenti

La UdpClient classe fornisce semplici metodi per l'invio e la ricezione di datagrammi UDP senza connessione in modalità sincrona bloccante.The UdpClient class provides simple methods for sending and receiving connectionless UDP datagrams in blocking synchronous mode. Poiché UDP è un protocollo di trasporto senza connessione, non è necessario stabilire una connessione all'host remoto prima di inviare e ricevere dati.Because UDP is a connectionless transport protocol, you do not need to establish a remote host connection prior to sending and receiving data. Tuttavia, è possibile stabilire un host remoto predefinito in uno dei due modi seguenti:You do, however, have the option of establishing a default remote host in one of the following two ways:

  • Creare un'istanza della UdpClient classe utilizzando il nome host remoto e il numero di porta come parametri.Create an instance of the UdpClient class using the remote host name and port number as parameters.

  • Creare un'istanza della UdpClient classe e quindi chiamare il Connect metodo.Create an instance of the UdpClient class and then call the Connect method.

È possibile utilizzare uno qualsiasi dei metodi Send disponibili in UdpClient per inviare i dati a un dispositivo remoto.You can use any of the send methods provided in the UdpClient to send data to a remote device. Utilizzare il Receive metodo per ricevere dati da host remoti.Use the Receive method to receive data from remote hosts.

Nota

Non chiamare Send utilizzando un nome host o IPEndPoint se è già stato specificato un host remoto predefinito.Do not call Send using a host name or IPEndPoint if you have already specified a default remote host. In caso contrario, UdpClient genererà un'eccezione.If you do, UdpClient will throw an exception.

UdpClienti metodi consentono inoltre di inviare e ricevere datagrammi multicast.UdpClient methods also allow you to send and receive multicast datagrams. Usare il JoinMulticastGroup metodo per sottoscrivere UdpClient un oggetto a un gruppo multicast.Use the JoinMulticastGroup method to subscribe a UdpClient to a multicast group. Usare il DropMulticastGroup metodo per annullare la sottoscrizione UdpClient di un da un gruppo multicast.Use the DropMulticastGroup method to unsubscribe a UdpClient from a multicast group.

Costruttori

UdpClient()

Inizializza una nuova istanza della classe UdpClient.Initializes a new instance of the UdpClient class.

UdpClient(AddressFamily)

Inizializza una nuova istanza della classe UdpClient.Initializes a new instance of the UdpClient class.

UdpClient(Int32)

Inizializza una nuova istanza della classe UdpClient e la associa al numero di porta locale fornito.Initializes a new instance of the UdpClient class and binds it to the local port number provided.

UdpClient(Int32, AddressFamily)

Inizializza una nuova istanza della classe UdpClient e la associa al numero di porta locale fornito.Initializes a new instance of the UdpClient class and binds it to the local port number provided.

UdpClient(IPEndPoint)

Inizializza una nuova istanza della classe UdpClient e la associa all'endpoint locale specificato.Initializes a new instance of the UdpClient class and binds it to the specified local endpoint.

UdpClient(String, Int32)

Inizializza una nuova istanza della classe UdpClient e stabilisce un host remoto predefinito.Initializes a new instance of the UdpClient class and establishes a default remote host.

Proprietà

Active

Ottiene o imposta un valore che indica se è stato stabilito un host remoto predefinito.Gets or sets a value indicating whether a default remote host has been established.

Available

Ottiene la quantità di dati ricevuti dalla rete disponibili per essere letti.Gets the amount of data received from the network that is available to read.

Client

Ottiene o imposta l'oggetto Socket di rete sottostante.Gets or sets the underlying network Socket.

DontFragment

Ottiene o imposta un valore Boolean che specifica se il UdpClient consente la frammentazione dei datagrammi IP (Internet Protocol).Gets or sets a Boolean value that specifies whether the UdpClient allows Internet Protocol (IP) datagrams to be fragmented.

EnableBroadcast

Ottiene o imposta un valore Boolean che specifica se la classe UdpClient può inviare o ricevere pacchetti broadcast.Gets or sets a Boolean value that specifies whether the UdpClient may send or receive broadcast packets.

ExclusiveAddressUse

Ottiene o imposta un valore Boolean che specifica se la classe UdpClient consente a un unico client di utilizzare una porta.Gets or sets a Boolean value that specifies whether the UdpClient allows only one client to use a port.

MulticastLoopback

Ottiene o imposta un valore Boolean che specifica se i pacchetti multicast in uscita devono essere recapitati all'applicazione mittente.Gets or sets a Boolean value that specifies whether outgoing multicast packets are delivered to the sending application.

Ttl

Ottiene o imposta un valore che specifica la durata (TTL) dei pacchetti IP inviati dall'oggetto UdpClient.Gets or sets a value that specifies the Time to Live (TTL) value of Internet Protocol (IP) packets sent by the UdpClient.

Metodi

AllowNatTraversal(Boolean)

Abilita o disabilita l'attraversamento NAT (Network Address Translation) in un'istanza di UdpClient.Enables or disables Network Address Translation (NAT) traversal on a UdpClient instance.

BeginReceive(AsyncCallback, Object)

Riceve un datagramma da un host remoto in modalità asincrona.Receives a datagram from a remote host asynchronously.

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

Invia un datagramma a un host remoto in modalità asincrona.Sends a datagram to a remote host asynchronously. La destinazione è stata specificata precedentemente da una chiamata al metodo Connect.The destination was specified previously by a call to Connect.

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

Invia un datagramma a una destinazione in modalità asincrona.Sends a datagram to a destination asynchronously. La destinazione è specificata da una classe EndPoint.The destination is specified by a EndPoint.

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

Invia un datagramma a una destinazione in modalità asincrona.Sends a datagram to a destination asynchronously. La destinazione è specificata mediante il nome dell'host e il numero di porta.The destination is specified by the host name and port number.

Close()

Chiude la connessione UDP.Closes the UDP connection.

Connect(IPAddress, Int32)

Stabilisce un host remoto predefinito utilizzando l'indirizzo IP e il numero di porta specificati.Establishes a default remote host using the specified IP address and port number.

Connect(IPEndPoint)

Stabilisce un host remoto predefinito utilizzando l'endpoint di rete specificato.Establishes a default remote host using the specified network endpoint.

Connect(String, Int32)

Stabilisce un host remoto predefinito utilizzando il nome host e il numero di porta specificati.Establishes a default remote host using the specified host name and port number.

Dispose()

Rilascia le risorse gestite e non gestite usate dall'oggetto UdpClient.Releases the managed and unmanaged resources used by the UdpClient.

Dispose(Boolean)

Rilascia le risorse non gestite usate da UdpClient e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the UdpClient and optionally releases the managed resources.

DropMulticastGroup(IPAddress)

Esce da un gruppo multicast.Leaves a multicast group.

DropMulticastGroup(IPAddress, Int32)

Esce da un gruppo multicast.Leaves a multicast group.

EndReceive(IAsyncResult, IPEndPoint)

Termina una ricezione asincrona in attesa.Ends a pending asynchronous receive.

EndSend(IAsyncResult)

Termina un invio asincrono in attesa.Ends a pending asynchronous send.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Finalize()
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
JoinMulticastGroup(Int32, IPAddress)

Aggiunge una classe UdpClient a un gruppo multicast.Adds a UdpClient to a multicast group.

JoinMulticastGroup(IPAddress)

Aggiunge una classe UdpClient a un gruppo multicast.Adds a UdpClient to a multicast group.

JoinMulticastGroup(IPAddress, Int32)

Aggiunge una classe UdpClient a un gruppo multicast con il Time to Live (TTL) specificato.Adds a UdpClient to a multicast group with the specified Time to Live (TTL).

JoinMulticastGroup(IPAddress, IPAddress)

Aggiunge una classe UdpClient a un gruppo multicast.Adds a UdpClient to a multicast group.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Receive(IPEndPoint)

Restituisce un datagramma UDP che era stato inviato da un host remoto.Returns a UDP datagram that was sent by a remote host.

ReceiveAsync()

Restituisce in modo asincrono un datagramma UDP inviato da un host remoto.Returns a UDP datagram asynchronously that was sent by a remote host.

Send(Byte[], Int32)

Invia un datagramma UDP a un host remoto.Sends a UDP datagram to a remote host.

Send(Byte[], Int32, IPEndPoint)

Invia un datagramma UDP all'host nell'endpoint remoto specificato.Sends a UDP datagram to the host at the specified remote endpoint.

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

Invia un datagramma UDP a una porta specificata su un host remoto specificato.Sends a UDP datagram to a specified port on a specified remote host.

SendAsync(Byte[], Int32)

Invia un datagramma UDP in modo asincrono a un host remoto.Sends a UDP datagram asynchronously to a remote host.

SendAsync(Byte[], Int32, IPEndPoint)

Invia un datagramma UDP in modo asincrono a un host remoto.Sends a UDP datagram asynchronously to a remote host.

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

Invia un datagramma UDP in modo asincrono a un host remoto.Sends a UDP datagram asynchronously to a remote host.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Rilascia tutte le risorse usate da UdpClient.Releases all resources used by the UdpClient.

Sicurezza

SocketPermission
Per stabilire una connessione in uscita o accettare una richiesta in ingresso.To establish an outgoing connection or accept an incoming request.

Si applica a

Vedi anche