UdpClient Класс

Определение

Предоставляет сетевые службы протокола UDP.

public ref class UdpClient : IDisposable
public class UdpClient : IDisposable
type UdpClient = class
    interface IDisposable
Public Class UdpClient
Implements IDisposable
Наследование
UdpClient
Реализации

Примеры

В следующем примере устанавливается UdpClient подключение с помощью имени www.contoso.com узла через порт 11000. Небольшое строковое сообщение отправляется на два отдельных удаленных компьютера узла. Метод Receive блокирует выполнение до получения сообщения. IPEndPoint С помощью переданного Receiveузла отображается удостоверение узла ответа.

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

Комментарии

Класс UdpClient предоставляет простые методы для отправки и получения диаграмм данных без подключения UDP в блокирующих синхронном режиме. Так как UDP является протоколом без подключения, вам не нужно устанавливать подключение удаленного узла перед отправкой и получением данных. Однако у вас есть возможность установить удаленный узел по умолчанию одним из следующих двух способов:

  • Создайте экземпляр класса, используя имя удаленного UdpClient узла и номер порта в качестве параметров.

  • Создайте экземпляр UdpClient класса и вызовите Connect метод.

Для отправки данных на удаленное устройство можно использовать любой из методов UdpClient отправки данных. Receive Используйте метод для получения данных от удаленных узлов.

Note

Не вызывайте Send имя узла или IPEndPoint если вы уже указали удаленный узел по умолчанию. Если вы сделаете это, UdpClient вызовет исключение.

UdpClient методы также позволяют отправлять и получать многоадресные диаграммы данных. JoinMulticastGroup Используйте метод для подписки на UdpClient группу многоадресной рассылки. DropMulticastGroup Используйте метод для отмены подписки UdpClient из группы многоадресной рассылки.

Конструкторы

Имя Описание
UdpClient()

Инициализирует новый экземпляр класса UdpClient.

UdpClient(AddressFamily)

Инициализирует новый экземпляр класса UdpClient.

UdpClient(Int32, AddressFamily)

Инициализирует новый экземпляр класса и привязывает его к указанному номеру локального UdpClient порта.

UdpClient(Int32)

Инициализирует новый экземпляр класса и привязывает его к указанному номеру локального UdpClient порта.

UdpClient(IPEndPoint)

Инициализирует новый экземпляр UdpClient класса и привязывает его к указанной локальной конечной точке.

UdpClient(String, Int32)

Инициализирует новый экземпляр UdpClient класса и устанавливает удаленный узел по умолчанию.

Свойства

Имя Описание
Active

Возвращает или задает значение, указывающее, был ли установлен удаленный узел по умолчанию.

Available

Возвращает объем данных, полученных из сети, доступной для чтения.

Client

Возвращает или задает базовую сеть Socket.

DontFragment

Возвращает или задает Boolean значение, указывающее, можно ли UdpClient фрагментировать диаграммы данных протокола Интернета (IP).

EnableBroadcast

Возвращает или задает Boolean значение, указывающее, может ли UdpClient отправлять широковещательные пакеты.

ExclusiveAddressUse

Возвращает или задает Boolean значение, указывающее, разрешено ли UdpClient использовать порт только одному клиенту.

MulticastLoopback

Возвращает или задает Boolean значение, указывающее, доставляются ли исходящие пакеты многоадресной рассылки в отправляющее приложение.

Ttl

Возвращает или задает значение, указывающее значение времени жизни (TTL) пакетов протокола Интернета (IP), отправляемых UdpClient.

Методы

Имя Описание
AllowNatTraversal(Boolean)

Включает или отключает обход преобразования сетевых адресов (NAT) на экземпляре UdpClient .

BeginReceive(AsyncCallback, Object)

Получает диаграмму данных от удаленного узла асинхронно.

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

Отправляет диаграмму данных удаленному узлу асинхронно. Назначение было указано ранее вызовом Connect.

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

Отправляет диаграмму данных в назначение асинхронно. Назначение указывается параметром EndPoint.

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

Отправляет диаграмму данных в назначение асинхронно. Назначение указывается именем узла и номером порта.

Close()

Закрывает подключение UDP.

Connect(IPAddress, Int32)

Устанавливает удаленный узел по умолчанию с помощью указанного IP-адреса и номера порта.

Connect(IPEndPoint)

Устанавливает удаленный узел по умолчанию с помощью указанной сетевой конечной точки.

Connect(String, Int32)

Устанавливает удаленный узел по умолчанию, используя указанное имя узла и номер порта.

Dispose()

Освобождает управляемые и неуправляемые ресурсы, используемые UdpClient.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые UdpClient и при необходимости освобождает управляемые ресурсы.

DropMulticastGroup(IPAddress, Int32)

Оставляет группу многоадресной рассылки.

DropMulticastGroup(IPAddress)

Оставляет группу многоадресной рассылки.

EndReceive(IAsyncResult, IPEndPoint)

Заканчивает ожидающий асинхронный прием.

EndSend(IAsyncResult)

Завершает ожидающий асинхронный отправку.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
JoinMulticastGroup(Int32, IPAddress)

Добавляет группу UdpClient многоадресной рассылки.

JoinMulticastGroup(IPAddress, Int32)

Добавляет группу UdpClient многоадресной рассылки с указанным временем жизни (TTL).

JoinMulticastGroup(IPAddress, IPAddress)

Добавляет группу UdpClient многоадресной рассылки.

JoinMulticastGroup(IPAddress)

Добавляет группу UdpClient многоадресной рассылки.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Receive(IPEndPoint)

Возвращает диаграмму данных UDP, отправленную удаленным узлом.

ReceiveAsync()

Возвращает асинхронную диаграмму данных UDP, отправленную удаленным узлом.

ReceiveAsync(CancellationToken)

Возвращает асинхронную диаграмму данных UDP, отправленную удаленным узлом.

Send(Byte[], Int32, IPEndPoint)

Отправляет UDP-диаграмму данных на узел в указанной удаленной конечной точке.

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

Отправляет диаграмму данных UDP на указанный порт на указанном удаленном узле.

Send(Byte[], Int32)

Отправляет диаграмму данных UDP удаленному узлу.

Send(ReadOnlySpan<Byte>, IPEndPoint)

Отправляет UDP-диаграмму данных на узел в указанной удаленной конечной точке.

Send(ReadOnlySpan<Byte>, String, Int32)

Отправляет диаграмму данных UDP на указанный порт на указанном удаленном узле.

Send(ReadOnlySpan<Byte>)

Отправляет диаграмму данных UDP удаленному узлу.

SendAsync(Byte[], Int32, IPEndPoint)

Асинхронно отправляет диаграмму данных UDP на удаленный узел.

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

Асинхронно отправляет диаграмму данных UDP на удаленный узел.

SendAsync(Byte[], Int32)

Асинхронно отправляет диаграмму данных UDP на удаленный узел.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Асинхронно отправляет диаграмму данных UDP на удаленный узел.

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Асинхронно отправляет диаграмму данных UDP на удаленный узел.

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

Асинхронно отправляет диаграмму данных UDP на удаленный узел.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Освобождает все ресурсы, используемые параметром UdpClient.

Применяется к

См. также раздел