UdpClient Třída

Definice

Poskytuje síťové služby 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 vytvoří UdpClient připojení pomocí názvu www.contoso.com hostitele na portu 11000. Malá řetězcová zpráva se odešle na dva samostatné vzdálené hostitelské počítače. Metoda Receive blokuje provádění, dokud se neobdrží zpráva. IPEndPoint Při předání Receivese odhalí identita reagují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 blokující synchronním režimu. Protože UDP je přenosový protokol bez připojení, nemusíte před odesíláním a přijímáním dat navázat připojení vzdáleného hostitele. Máte ale možnost vytvořit výchozího vzdáleného hostitele jedním z následujících dvou způsobů:

  • Vytvořte instanci třídy pomocí názvu vzdáleného UdpClient hostitele a čísla portu jako parametrů.

  • Vytvořte instanci UdpClient třídy a potom volejte metodu Connect .

K odesílání dat do vzdáleného zařízení můžete použít některou z metod UdpClient odesílání. Tuto metodu použijte k příjmu Receive dat ze vzdálených hostitelů.

Poznámka

Nevolejte Send pomocí názvu hostitele nebo IPEndPoint pokud jste už zadali výchozího vzdáleného hostitele. Pokud to uděláte, UdpClient vyvolá se výjimka.

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

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 k zadanému místnímu koncovému bodu.

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í podkladovou síť Socket.

DontFragment

Získá nebo nastaví Boolean hodnotu, která určuje, zda UdpClient je možné datagramy protokolu IP (Internet Protocol) fragmentovat.

EnableBroadcast

Získá nebo nastaví Boolean hodnotu, která určuje, zda UdpClient může odesílat pakety vysílání.

ExclusiveAddressUse

Získá nebo nastaví Boolean hodnotu, která určuje, zda UdpClient umožňuje používat port pouze jednoho klienta.

MulticastLoopback

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

Ttl

Získá nebo nastaví hodnotu, která určuje hodnotu Time to Live (TTL) paketů protokolu IP (Internet Protocol) odesílaných serverem 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 zadán dříve voláním .Connect

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

Odešle datagram do cíle asynchronně. Cíl je určen hodnotou 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()

Zavře 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é 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čí čekající asynchronní příjem.

EndSend(IAsyncResult)

Ukončí čekající asynchronní odeslání.

Equals(Object)

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

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

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

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

JoinMulticastGroup(IPAddress)

Přidá do UdpClient 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 Time to Live (TTL).

JoinMulticastGroup(IPAddress, IPAddress)

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

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

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

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

ReceiveAsync()

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

ReceiveAsync(CancellationToken)

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

Send(Byte[], Int32)

Odešle datovýgram 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 datovýgram UDP do zadaného portu na zadaném vzdáleném hostiteli.

Send(ReadOnlySpan<Byte>)

Odešle datovýgram 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 datovýgram UDP do zadaného portu na zadaném vzdáleném hostiteli.

SendAsync(Byte[], Int32)

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

SendAsync(Byte[], Int32, IPEndPoint)

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

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

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

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

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

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

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

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

Odešle 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é