Sdílet prostřednictvím


UdpClient Třída

Definice

Poskytuje síťové služby protokolu UDP (User Datagram Protocol).

public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
    interface IDisposable
Public Class UdpClient
Implements IDisposable
Dědičnost
UdpClient
Implementuje

Příklady

Následující příklad naváže UdpClient připojení pomocí názvu www.contoso.com hostitele na portu 11000. Zpráva s malým řetězcem je odeslána dvěma samostatným vzdáleným hostitelským počítačům. Metoda Receive blokuje provádění, dokud není přijata zpráva. IPEndPoint Pomocí příkazu předaného do Receivese odhalí identita odpovídajícího hostitele.

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

Poznámky

Třída UdpClient poskytuje jednoduché metody pro odesílání a příjem datagramů UDP bez připojení v synchronním režimu blokování. Vzhledem k tomu, že UDP je přenosový protokol bez připojení, nemusíte před odesláním a příjmem dat navazovat připojení ke vzdálenému hostiteli. Máte však možnost vytvořit výchozího vzdáleného hostitele jedním z následujících dvou způsobů:

  • Create instanci UdpClient třídy s použitím názvu vzdáleného hostitele a čísla portu jako parametrů.

  • Create instanci UdpClient třídy a pak zavolejte metodu Connect .

K odeslání dat do vzdáleného zařízení můžete použít libovolnou metodu odeslání uvedenou v objektu UdpClient . K příjmu dat ze vzdálených hostitelů použijte metodu Receive .

Poznámka

Nevolejte Send pomocí názvu hostitele nebo IPEndPoint pokud jste již zadali výchozího vzdáleného hostitele. Pokud ano, UdpClient vyvolá výjimku.

UdpClient Metody také umožňují odesílat a přijímat datagramy vícesměrového vysílání. K přihlášení k odběru JoinMulticastGroup skupiny vícesměrového vysílání použijte metodu UdpClient . K odhlášení odběru DropMulticastGroupUdpClient ze skupiny vícesměrového vysílání použijte metodu .

Konstruktory

UdpClient()

Inicializuje novou instanci UdpClient třídy .

UdpClient(AddressFamily)

Inicializuje novou instanci UdpClient třídy .

UdpClient(Int32)

Inicializuje novou instanci UdpClient třídy a vytvoří vazbu na zadané číslo místního portu.

UdpClient(Int32, AddressFamily)

Inicializuje novou instanci UdpClient třídy a vytvoří vazbu na zadané číslo místního portu.

UdpClient(IPEndPoint)

Inicializuje novou instanci UdpClient třídy a vytvoří vazbu na zadaný místní koncový bod.

UdpClient(String, Int32)

Inicializuje novou instanci UdpClient třídy a vytvoří výchozího vzdáleného hostitele.

Vlastnosti

Active

Získá nebo nastaví hodnotu označující, zda byl vytvořen výchozí vzdálený hostitel.

Available

Získá množství dat přijatých ze sítě, která je k dispozici pro čtení.

Client

Získá nebo nastaví základní síť Socket.

DontFragment

Získá nebo nastaví Boolean hodnotu, která určuje, zda UdpClient umožňuje protokol IP (Internet Protocol) datagramy fragmentovat.

EnableBroadcast

Získá nebo nastaví Boolean hodnotu, která určuje, zda UdpClient může odesílat pakety všesměrového vysílání.

ExclusiveAddressUse

Získá nebo nastaví Boolean hodnotu, která určuje, zda UdpClient umožňuje pouze jednomu klientovi použít port.

MulticastLoopback

Získá nebo nastaví Boolean hodnotu, která určuje, zda odchozí pakety vícesměrového vysílání jsou doručeny do odesílající aplikace.

Ttl

Získá nebo nastaví hodnotu, která určuje hodnotu TTL (Time to Live) paketů protokolu IP (Internet Protocol) odeslaných pomocí UdpClient.

Metody

AllowNatTraversal(Boolean)

Povolí nebo zakáže procházení překladu adres (NAT) v UdpClient instanci.

BeginReceive(AsyncCallback, Object)

Přijímá datagram ze vzdáleného hostitele asynchronně.

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

Odešle datagram vzdálenému hostiteli asynchronně. Cíl byl dříve určen voláním Connectmetody .

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

Odešle datagram do cíle asynchronně. Cíl je určen parametrem EndPoint.

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

Odešle datagram do cíle asynchronně. Cíl je určen názvem hostitele a číslem portu.

Close()

Ukončí připojení UDP.

Connect(IPAddress, Int32)

Vytvoří výchozího vzdáleného hostitele pomocí zadané IP adresy a čísla portu.

Connect(IPEndPoint)

Vytvoří výchozího vzdáleného hostitele pomocí zadaného koncového bodu sítě.

Connect(String, Int32)

Vytvoří výchozího vzdáleného hostitele pomocí zadaného názvu hostitele a čísla portu.

Dispose()

Uvolní spravované a nespravované prostředky používané nástrojem UdpClient.

Dispose(Boolean)

Uvolní nespravované prostředky používané nástrojem UdpClient a volitelně uvolní spravované prostředky.

DropMulticastGroup(IPAddress)

Ponechá skupinu vícesměrového vysílání.

DropMulticastGroup(IPAddress, Int32)

Ponechá skupinu vícesměrového vysílání.

EndReceive(IAsyncResult, IPEndPoint)

Ukončí asynchronní příjem čekající na vyřízení.

EndSend(IAsyncResult)

Ukončí asynchronní odeslání čekající na vyřízení.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
JoinMulticastGroup(Int32, IPAddress)

UdpClient Přidá do skupiny vícesměrového vysílání.

JoinMulticastGroup(IPAddress)

UdpClient Přidá do skupiny vícesměrového vysílání.

JoinMulticastGroup(IPAddress, Int32)

UdpClient Přidá do skupiny vícesměrového vysílání se zadanou hodnotou TTL (Time to Live).

JoinMulticastGroup(IPAddress, IPAddress)

UdpClient Přidá do skupiny vícesměrového vysílání.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Receive(IPEndPoint)

Vrátí datagram UDP odeslaný vzdáleným hostitelem.

ReceiveAsync()

Vrátí asynchronně datagram UDP odeslaný vzdáleným hostitelem.

ReceiveAsync(CancellationToken)

Vrátí asynchronně datagram UDP odeslaný vzdáleným hostitelem.

Send(Byte[], Int32)

Odešle datagram UDP vzdálenému hostiteli.

Send(Byte[], Int32, IPEndPoint)

Odešle datagram UDP hostiteli v zadaném vzdáleném koncovém bodu.

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

Odešle datagram UDP na zadaný port na zadaném vzdáleném hostiteli.

Send(ReadOnlySpan<Byte>)

Odešle datagram UDP vzdálenému hostiteli.

Send(ReadOnlySpan<Byte>, IPEndPoint)

Odešle datagram UDP hostiteli v zadaném vzdáleném koncovém bodu.

Send(ReadOnlySpan<Byte>, String, Int32)

Odešle datagram UDP na zadaný port na zadaném vzdáleném hostiteli.

SendAsync(Byte[], Int32)

Odesílá datagram UDP asynchronně vzdálenému hostiteli.

SendAsync(Byte[], Int32, IPEndPoint)

Odesílá datagram UDP asynchronně vzdálenému hostiteli.

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

Odesílá datagram UDP asynchronně vzdálenému hostiteli.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Odesílá datagram UDP asynchronně vzdálenému hostiteli.

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Odesílá datagram UDP asynchronně vzdálenému hostiteli.

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

Odesílá datagram UDP asynchronně vzdálenému hostiteli.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

IDisposable.Dispose()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Uvolní všechny prostředky používané nástrojem UdpClient.

Platí pro

Viz také