UdpClient Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет сетевые службы по протоколу UDP (User Datagram Protocol).
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отображается удостоверение отвечающего узла.
// 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
Комментарии
Класс предоставляет простые UdpClient методы для отправки и получения датаграмм UDP без подключения в блокирующем синхронном режиме. Так как UDP является протоколом транспорта без подключения, вам не нужно устанавливать подключение к удаленному узлу перед отправкой и получением данных. Однако вы можете установить удаленный узел по умолчанию одним из следующих двух способов:
Create экземпляр класса , используя имя удаленного UdpClient узла и номер порта в качестве параметров.
Create экземпляр UdpClient класса , а затем вызовите Connect метод .
Вы можете использовать любой из методов отправки, указанных в , для отправки UdpClient данных на удаленное устройство. Receive Используйте метод для получения данных от удаленных узлов.
Примечание
Не вызывайте Send , используя имя узла или IPEndPoint если вы уже указали удаленный узел по умолчанию. В этом случае UdpClient вызовет исключение.
UdpClient Методы также позволяют отправлять и получать многоадресные датаграммы. Используйте метод для JoinMulticastGroup подписки UdpClient на группу многоадресной рассылки. Используйте метод , DropMulticastGroup чтобы отменить подписку UdpClient на группу многоадресной рассылки.
Конструкторы
UdpClient() |
Инициализирует новый экземпляр класса UdpClient. |
UdpClient(AddressFamily) |
Инициализирует новый экземпляр класса UdpClient. |
UdpClient(Int32) |
Инициализирует новый экземпляр класса UdpClient и связывает его с заданным номером локального порта. |
UdpClient(Int32, AddressFamily) |
Инициализирует новый экземпляр класса 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 (Time To Live) для 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) |
Покидает группу многоадресной рассылки. |
DropMulticastGroup(IPAddress, Int32) |
Покидает группу многоадресной рассылки. |
EndReceive(IAsyncResult, IPEndPoint) |
Завершает отложенный асинхронный прием. |
EndSend(IAsyncResult) |
Завершает отложенную операцию асинхронной передачи. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
JoinMulticastGroup(Int32, IPAddress) |
Добавляет объект UdpClient в группу многоадресной рассылки. |
JoinMulticastGroup(IPAddress) |
Добавляет объект UdpClient в группу многоадресной рассылки. |
JoinMulticastGroup(IPAddress, Int32) |
Добавьте в группу многоадресной рассылки объект UdpClient с заданным параметром времени существования TTL (Time to Live). |
JoinMulticastGroup(IPAddress, IPAddress) |
Добавляет объект UdpClient в группу многоадресной рассылки. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Receive(IPEndPoint) |
Возвращает UDP-датаграмму, которая была послана на удаленный узел. |
ReceiveAsync() |
Асинхронно возвращает UDP-датаграмму, которая была послана на удаленный узел. |
ReceiveAsync(CancellationToken) |
Асинхронно возвращает UDP-датаграмму, которая была послана на удаленный узел. |
Send(Byte[], Int32) |
Отправляет датаграмму UDP в удаленный узел. |
Send(Byte[], Int32, IPEndPoint) |
Отправляет UDP-датаграмму в узел в указанной удаленной конечной точке. |
Send(Byte[], Int32, String, Int32) |
Отправляет UDP-датаграмму на заданный порт указанного удаленного узла. |
Send(ReadOnlySpan<Byte>) |
Отправляет датаграмму UDP в удаленный узел. |
Send(ReadOnlySpan<Byte>, IPEndPoint) |
Отправляет UDP-датаграмму в узел в указанной удаленной конечной точке. |
Send(ReadOnlySpan<Byte>, String, Int32) |
Отправляет UDP-датаграмму на заданный порт указанного удаленного узла. |
SendAsync(Byte[], Int32) |
Асинхронно отправляет датаграмму UPD на удаленный узел. |
SendAsync(Byte[], Int32, IPEndPoint) |
Асинхронно отправляет датаграмму UPD на удаленный узел. |
SendAsync(Byte[], Int32, String, Int32) |
Асинхронно отправляет датаграмму UPD на удаленный узел. |
SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Асинхронно отправляет датаграмму UPD на удаленный узел. |
SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken) |
Асинхронно отправляет датаграмму UPD на удаленный узел. |
SendAsync(ReadOnlyMemory<Byte>, String, Int32, CancellationToken) |
Асинхронно отправляет датаграмму UPD на удаленный узел. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
IDisposable.Dispose() |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Освобождает все ресурсы, занятые модулем UdpClient. |