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 do dvou samostatných vzdálených hostitelských počítačů. Metoda Receive blokuje provádění, dokud se neobdrží zpráva. Pomocí předávaného IPEndPointReceivesouboru se odhalí identita reagujícího hostitele.

// 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í režim. Vzhledem k tomu, že UDP je přenosový protokol bez připojení, nemusíte před odesíláním a příjmem 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 pak 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í. Receive Pomocí této metody můžete přijímat data ze vzdálených hostitelů.

Note

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

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

Konstruktory

Name Description
UdpClient()

Inicializuje novou instanci UdpClient třídy.

UdpClient(AddressFamily)

Inicializuje novou instanci UdpClient třídy.

UdpClient(Int32, AddressFamily)

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

UdpClient(Int32)

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

Name Description
Active

Získá nebo nastaví hodnotu urč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 ke č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, aby port používal pouze jeden klient.

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) odesílaných protokolem UdpClient.

Metody

Name Description
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 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()

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é UdpClient a volitelně uvolní spravované prostředky.

DropMulticastGroup(IPAddress, Int32)

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

DropMulticastGroup(IPAddress)

Opustí 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čuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

UdpClient Přidá skupinu 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á skupinu vícesměrového vysílání.

JoinMulticastGroup(IPAddress)

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

MemberwiseClone()

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

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

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

ReceiveAsync()

Vrátí datagram UDP asynchronně, který byl odeslán vzdáleným hostitelem.

ReceiveAsync(CancellationToken)

Vrátí datagram UDP asynchronně, který byl odeslán vzdáleným hostitelem.

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(Byte[], Int32)

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.

Send(ReadOnlySpan<Byte>)

Odešle datagram UDP 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(Byte[], 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í

Name Description
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é