UdpClient Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce servizi di rete UDP (User Datagram Protocol).
public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
interface IDisposable
Public Class UdpClient
Implements IDisposable
- Ereditarietà
-
UdpClient
- Implementazioni
Esempio
Nell'esempio seguente viene stabilita una UdpClient connessione usando il nome www.contoso.com
host sulla porta 11000. Un piccolo messaggio stringa viene inviato a due computer host remoti separati. Il Receive metodo blocca l'esecuzione fino a quando non viene ricevuto un messaggio. Usando l'oggetto IPEndPoint passato a Receive, viene rilevata l'identità dell'host che risponde.
// 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 metodi semplici per l'invio e la ricezione di datagrammi UDP senza connessione in modalità sincrona. Poiché UDP è un protocollo di trasporto senza connessione, non è necessario stabilire una connessione host remota prima di inviare e ricevere dati. È tuttavia possibile stabilire un host remoto predefinito in uno dei due modi seguenti:
Create un'istanza della UdpClient classe usando il nome host remoto e il numero di porta come parametri.
Create un'istanza della UdpClient classe e quindi chiamare il Connect metodo .
È possibile usare uno dei metodi di invio forniti in UdpClient per inviare dati a un dispositivo remoto. Usare il Receive metodo per ricevere dati da host remoti.
Nota
Non chiamare Send usando un nome host o IPEndPoint se è già stato specificato un host remoto predefinito. In tal caso, UdpClient genererà un'eccezione.
UdpClient i metodi consentono anche di inviare e ricevere datagrammi multicast. Usare il JoinMulticastGroup metodo per sottoscrivere un UdpClient gruppo multicast. Usare il metodo per annullare la DropMulticastGroupUdpClient sottoscrizione a un gruppo multicast.
Costruttori
UdpClient() |
Inizializza una nuova istanza della classe UdpClient. |
UdpClient(AddressFamily) |
Inizializza una nuova istanza della classe UdpClient. |
UdpClient(Int32) |
Inizializza una nuova istanza della classe UdpClient e la associa al numero di porta locale fornito. |
UdpClient(Int32, AddressFamily) |
Inizializza una nuova istanza della classe UdpClient e la associa al numero di porta locale fornito. |
UdpClient(IPEndPoint) |
Inizializza una nuova istanza della classe UdpClient e la associa all'endpoint locale specificato. |
UdpClient(String, Int32) |
Inizializza una nuova istanza della classe UdpClient e stabilisce un host remoto predefinito. |
Proprietà
Active |
Ottiene o imposta un valore che indica se è stato stabilito un host remoto predefinito. |
Available |
Ottiene la quantità di dati ricevuti dalla rete disponibili per essere letti. |
Client |
Ottiene o imposta l'oggetto Socket di rete sottostante. |
DontFragment |
Ottiene o imposta un valore Boolean che specifica se il UdpClient consente la frammentazione dei datagrammi IP (Internet Protocol). |
EnableBroadcast |
Ottiene o imposta un Boolean valore che specifica se l'oggetto UdpClient può inviare pacchetti broadcast. |
ExclusiveAddressUse |
Ottiene o imposta un valore Boolean che specifica se la classe UdpClient consente a un unico client di utilizzare una porta. |
MulticastLoopback |
Ottiene o imposta un valore Boolean che specifica se i pacchetti multicast in uscita devono essere recapitati all'applicazione mittente. |
Ttl |
Ottiene o imposta un valore che specifica la durata (TTL) dei pacchetti IP inviati dall'oggetto UdpClient. |
Metodi
AllowNatTraversal(Boolean) |
Abilita o disabilita l'attraversamento NAT (Network Address Translation) in un'istanza di UdpClient. |
BeginReceive(AsyncCallback, Object) |
Riceve un datagramma da un host remoto in modalità asincrona. |
BeginSend(Byte[], Int32, AsyncCallback, Object) |
Invia un datagramma a un host remoto in modalità asincrona. La destinazione è stata specificata precedentemente da una chiamata al metodo Connect. |
BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object) |
Invia un datagramma a una destinazione in modalità asincrona. La destinazione è specificata da una classe EndPoint. |
BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object) |
Invia un datagramma a una destinazione in modalità asincrona. La destinazione è specificata mediante il nome dell'host e il numero di porta. |
Close() |
Chiude la connessione UDP. |
Connect(IPAddress, Int32) |
Stabilisce un host remoto predefinito utilizzando l'indirizzo IP e il numero di porta specificati. |
Connect(IPEndPoint) |
Stabilisce un host remoto predefinito utilizzando l'endpoint di rete specificato. |
Connect(String, Int32) |
Stabilisce un host remoto predefinito utilizzando il nome host e il numero di porta specificati. |
Dispose() |
Rilascia le risorse gestite e non gestite usate dall'oggetto UdpClient. |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da UdpClient e, facoltativamente, le risorse gestite. |
DropMulticastGroup(IPAddress) |
Esce da un gruppo multicast. |
DropMulticastGroup(IPAddress, Int32) |
Esce da un gruppo multicast. |
EndReceive(IAsyncResult, IPEndPoint) |
Termina una ricezione asincrona in attesa. |
EndSend(IAsyncResult) |
Termina un invio asincrono in attesa. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
JoinMulticastGroup(Int32, IPAddress) |
Aggiunge una classe UdpClient a un gruppo multicast. |
JoinMulticastGroup(IPAddress) |
Aggiunge una classe UdpClient a un gruppo multicast. |
JoinMulticastGroup(IPAddress, Int32) |
Aggiunge una classe UdpClient a un gruppo multicast con il Time to Live (TTL) specificato. |
JoinMulticastGroup(IPAddress, IPAddress) |
Aggiunge una classe UdpClient a un gruppo multicast. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Receive(IPEndPoint) |
Restituisce un datagramma UDP che era stato inviato da un host remoto. |
ReceiveAsync() |
Restituisce in modo asincrono un datagramma UDP inviato da un host remoto. |
ReceiveAsync(CancellationToken) |
Restituisce in modo asincrono un datagramma UDP inviato da un host remoto. |
Send(Byte[], Int32) |
Invia un datagramma UDP a un host remoto. |
Send(Byte[], Int32, IPEndPoint) |
Invia un datagramma UDP all'host all'endpoint remoto specificato. |
Send(Byte[], Int32, String, Int32) |
Invia un datagramma UDP a una porta specificata in un host remoto specificato. |
Send(ReadOnlySpan<Byte>) |
Invia un datagramma UDP a un host remoto. |
Send(ReadOnlySpan<Byte>, IPEndPoint) |
Invia un datagramma UDP all'host all'endpoint remoto specificato. |
Send(ReadOnlySpan<Byte>, String, Int32) |
Invia un datagramma UDP a una porta specificata in un host remoto specificato. |
SendAsync(Byte[], Int32) |
Invia un datagramma UDP in modo asincrono a un host remoto. |
SendAsync(Byte[], Int32, IPEndPoint) |
Invia un datagramma UDP in modo asincrono a un host remoto. |
SendAsync(Byte[], Int32, String, Int32) |
Invia un datagramma UDP in modo asincrono a un host remoto. |
SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Invia un datagramma UDP in modo asincrono a un host remoto. |
SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken) |
Invia un datagramma UDP in modo asincrono a un host remoto. |
SendAsync(ReadOnlyMemory<Byte>, String, Int32, CancellationToken) |
Invia un datagramma UDP in modo asincrono a un host remoto. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IDisposable.Dispose() |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Rilascia tutte le risorse usate da UdpClient. |