UdpClient Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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. |