Udostępnij za pośrednictwem


UdpClient Klasa

Definicja

Udostępnia usługi sieciowe protokołu UDP (User Datagram Protocol).

public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
    interface IDisposable
Public Class UdpClient
Implements IDisposable
Dziedziczenie
UdpClient
Implementuje

Przykłady

Poniższy przykład ustanawia UdpClient połączenie przy użyciu nazwy www.contoso.com hosta na porcie 11000. Do dwóch oddzielnych zdalnych maszyn hostów jest wysyłany mały komunikat ciągu. Metoda Receive blokuje wykonywanie do momentu odebrania komunikatu. Przy użyciu przekazanego IPEndPoint do Receiveelementu zostanie ujawniona tożsamość odpowiadającego hosta.

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

Uwagi

Klasa UdpClient udostępnia proste metody wysyłania i odbierania bez połączenia datagramów UDP w trybie synchronicznym. Ponieważ protokół UDP jest protokołem transportu bez połączenia, nie trzeba ustanowić połączenia hosta zdalnego przed wysłaniem i odbieraniem danych. Istnieje jednak możliwość ustanowienia domyślnego hosta zdalnego na jeden z następujących dwóch sposobów:

  • Twórca wystąpienie UdpClient klasy przy użyciu nazwy hosta zdalnego i numeru portu jako parametrów.

  • Twórca wystąpienie UdpClient klasy, a następnie wywołaj metodę Connect .

Możesz użyć dowolnej z metod wysyłania podanych w elemecie UdpClient , aby wysyłać dane do urządzenia zdalnego. Receive Użyj metody , aby odbierać dane z hostów zdalnych.

Uwaga

Nie należy wywoływać Send przy użyciu nazwy hosta lub IPEndPoint jeśli określono już domyślny host zdalny. Jeśli to zrobisz, UdpClient zgłosi wyjątek.

UdpClient metody umożliwiają również wysyłanie i odbieranie multiemisji datagramów. JoinMulticastGroup Użyj metody , aby zasubskrybować UdpClient grupę multiemisji. DropMulticastGroup Użyj metody , aby anulować subskrypcję UdpClient grupy multiemisji.

Konstruktory

UdpClient()

Inicjuje nowe wystąpienie klasy UdpClient.

UdpClient(AddressFamily)

Inicjuje nowe wystąpienie klasy UdpClient.

UdpClient(Int32)

Inicjuje UdpClient nowe wystąpienie klasy i wiąże je z podanym numerem portu lokalnego.

UdpClient(Int32, AddressFamily)

Inicjuje UdpClient nowe wystąpienie klasy i wiąże je z podanym numerem portu lokalnego.

UdpClient(IPEndPoint)

Inicjuje UdpClient nowe wystąpienie klasy i wiąże je z określonym lokalnym punktem końcowym.

UdpClient(String, Int32)

Inicjuje UdpClient nowe wystąpienie klasy i ustanawia domyślnego hosta zdalnego.

Właściwości

Active

Pobiera lub ustawia wartość wskazującą, czy został ustanowiony domyślny host zdalny.

Available

Pobiera ilość danych odebranych z sieci, która jest dostępna do odczytu.

Client

Pobiera lub ustawia podstawową sieć Socket.

DontFragment

Pobiera lub ustawia wartość określającą Boolean , czy UdpClient zezwala na fragmentacje datagramów protokołu internetowego (IP).

EnableBroadcast

Pobiera lub ustawia wartość określającą Boolean , czy UdpClient może wysyłać pakiety emisji.

ExclusiveAddressUse

Pobiera lub ustawia wartość określającą Boolean , czy UdpClient zezwala tylko jednemu klientowi na korzystanie z portu.

MulticastLoopback

Pobiera lub ustawia wartość określającą Boolean , czy wychodzące pakiety multiemisji są dostarczane do aplikacji wysyłającej.

Ttl

Pobiera lub ustawia wartość określającą wartość Czas wygaśnięcia (TTL) pakietów protokołu internetowego (IP) wysyłanych przez UdpClientelement .

Metody

AllowNatTraversal(Boolean)

Włącza lub wyłącza przechodzenie translatora adresów sieciowych (NAT) w wystąpieniu UdpClient .

BeginReceive(AsyncCallback, Object)

Odbiera datagram z hosta zdalnego asynchronicznie.

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

Wysyła datagram do hosta zdalnego asynchronicznie. Miejsce docelowe zostało wcześniej określone przez wywołanie metody Connect.

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

Wysyła datagram do miejsca docelowego asynchronicznie. Miejsce docelowe jest określane przez element EndPoint.

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

Wysyła datagram do miejsca docelowego asynchronicznie. Miejsce docelowe jest określane przez nazwę hosta i numer portu.

Close()

Zamyka połączenie UDP.

Connect(IPAddress, Int32)

Ustanawia domyślny host zdalny przy użyciu określonego adresu IP i numeru portu.

Connect(IPEndPoint)

Ustanawia domyślny host zdalny przy użyciu określonego punktu końcowego sieci.

Connect(String, Int32)

Ustanawia domyślny host zdalny przy użyciu określonej nazwy hosta i numeru portu.

Dispose()

Zwalnia zarządzane i niezarządzane zasoby używane przez UdpClientprogram .

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element UdpClient i opcjonalnie zwalnia zasoby zarządzane.

DropMulticastGroup(IPAddress)

Pozostawia grupę multiemisji.

DropMulticastGroup(IPAddress, Int32)

Pozostawia grupę multiemisji.

EndReceive(IAsyncResult, IPEndPoint)

Kończy oczekujące asynchroniczne odbieranie.

EndSend(IAsyncResult)

Kończy oczekujące wysyłanie asynchroniczne.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
JoinMulticastGroup(Int32, IPAddress)

Dodaje element UdpClient do grupy multiemisji.

JoinMulticastGroup(IPAddress)

Dodaje element UdpClient do grupy multiemisji.

JoinMulticastGroup(IPAddress, Int32)

Dodaje element UdpClient do grupy multiemisji z określonym czasem wygaśnięcia (TTL).

JoinMulticastGroup(IPAddress, IPAddress)

Dodaje element UdpClient do grupy multiemisji.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Receive(IPEndPoint)

Zwraca datagram UDP, który został wysłany przez hosta zdalnego.

ReceiveAsync()

Zwraca asynchronicznie datagram UDP, który został wysłany przez hosta zdalnego.

ReceiveAsync(CancellationToken)

Zwraca asynchronicznie datagram UDP, który został wysłany przez hosta zdalnego.

Send(Byte[], Int32)

Wysyła datagram UDP do hosta zdalnego.

Send(Byte[], Int32, IPEndPoint)

Wysyła datagram UDP do hosta w określonym zdalnym punkcie końcowym.

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

Wysyła datagram UDP do określonego portu na określonym hoście zdalnym.

Send(ReadOnlySpan<Byte>)

Wysyła datagram UDP do hosta zdalnego.

Send(ReadOnlySpan<Byte>, IPEndPoint)

Wysyła datagram UDP do hosta w określonym zdalnym punkcie końcowym.

Send(ReadOnlySpan<Byte>, String, Int32)

Wysyła datagram UDP do określonego portu na określonym hoście zdalnym.

SendAsync(Byte[], Int32)

Przesyła datagram UDP asynchronicznie do hosta zdalnego.

SendAsync(Byte[], Int32, IPEndPoint)

Przesyła datagram UDP asynchronicznie do hosta zdalnego.

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

Przesyła datagram UDP asynchronicznie do hosta zdalnego.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Przesyła datagram UDP asynchronicznie do hosta zdalnego.

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Przesyła datagram UDP asynchronicznie do hosta zdalnego.

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

Przesyła datagram UDP asynchronicznie do hosta zdalnego.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwalnia wszelkie zasoby używane przez element UdpClient.

Dotyczy

Zobacz też