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