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