Поделиться через


UdpClient.SendAsync Метод

Определение

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

Перегрузки

SendAsync(Byte[], Int32)

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

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

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

SendAsync(Byte[], Int32, IPEndPoint)

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

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

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

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

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

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

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

SendAsync(Byte[], Int32)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(cli::array <System::Byte> ^ datagram, int bytes);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes);
member this.SendAsync : byte[] * int -> System.Threading.Tasks.Task<int>
Public Function SendAsync (datagram As Byte(), bytes As Integer) As Task(Of Integer)

Параметры

datagram
Byte[]

Массив типа Byte, задающий UDP-датаграмму, которую предполагается послать в виде байтового массива.

bytes
Int32

Число байт в датаграмме.

Возвращаемое значение

Возвращает Task<TResult>.

Исключения

dgram имеет значение null.

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

Объект UdpClient закрыт.

Произошла ошибка при обращении к сокету.

Комментарии

Эта перегрузка отправляет датаграммы на удаленный узел, установленный в методе Connect . Если не вызвать Connect перед вызовом этой перегрузки, метод вызовет SocketExceptionисключение . Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Если вы хотите отправить датаграммы на другой удаленный узел, необходимо вызвать Connect метод и указать нужный удаленный узел. Используйте другую перегрузку SendAsync метода для отправки датаграмм на широковещательный адрес.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Send(Byte[], Int32).

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

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

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

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> datagram, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (datagram As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

datagram
ReadOnlyMemory<Byte>

Byte Тип ReadOnlyMemory<T> , указывающий датаграмму UDP, которую вы планируете отправить.

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены. По умолчанию используется None.

Возвращаемое значение

Объект , ValueTask<TResult> представляющий асинхронную операцию отправки. Значение свойства Result содержит количество отправленных байтов.

Исключения

Объект UdpClient закрыт.

Произошла ошибка при обращении к сокету.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

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

SendAsync(Byte[], Int32, IPEndPoint)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(cli::array <System::Byte> ^ datagram, int bytes, System::Net::IPEndPoint ^ endPoint);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, System.Net.IPEndPoint? endPoint);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, System.Net.IPEndPoint endPoint);
member this.SendAsync : byte[] * int * System.Net.IPEndPoint -> System.Threading.Tasks.Task<int>
Public Function SendAsync (datagram As Byte(), bytes As Integer, endPoint As IPEndPoint) As Task(Of Integer)

Параметры

datagram
Byte[]

Массив типа Byte, задающий UDP-датаграмму, которую предполагается послать в виде байтового массива.

bytes
Int32

Число байт в датаграмме.

endPoint
IPEndPoint

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

Возвращаемое значение

Возвращает Task<TResult>.

Исключения

dgram имеет значение null.

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

Произошла ошибка при обращении к сокету.

Комментарии

Этот метод отправляет датаграммы в указанную конечную точку. Перед вызовом IPEndPoint этой перегрузки необходимо сначала создать , используя IP-адрес и номер порта удаленного узла, на который будут доставляться датаграммы. Вы можете отправить датаграммы на широковещательный адрес по умолчанию 255.255.255.255, указав SocketOptionName.Broadcast для Address свойства IPEndPointобъекта . После создания передайте IPEndPointего в этот метод в endPoint качестве параметра .

Если вы хотите отправить датаграммы на любой другой широковещательный адрес, используйте Client метод для получения базового Socketи задайте для параметра сокета значение SocketOptionName.Broadcast. Вы также можете отменить изменения к использованию Socket класса .

Предупреждение

Не указывайте endPoint параметр для этого метода, если вы уже установили удаленный узел с Connect помощью метода . В этом случае этот метод вызовет исключение SocketException. Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Send(Byte[], Int32, IPEndPoint).

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

SendAsync(ReadOnlyMemory<Byte>, IPEndPoint, CancellationToken)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

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

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> datagram, System.Net.IPEndPoint? endPoint, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Net.IPEndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (datagram As ReadOnlyMemory(Of Byte), endPoint As IPEndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

datagram
ReadOnlyMemory<Byte>

Byte Тип ReadOnlyMemory<T> , указывающий датаграмму UDP, которую вы планируете отправить.

endPoint
IPEndPoint

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

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены. По умолчанию используется None.

Возвращаемое значение

Объект , ValueTask<TResult> представляющий асинхронную операцию отправки. Значение свойства Result содержит количество отправленных байтов.

Исключения

UdpClient уже установил удаленный узел по умолчанию и endPoint не nullимеет значения .

Объект UdpClient закрыт.

Произошла ошибка при обращении к сокету.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

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

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

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(cli::array <System::Byte> ^ datagram, int bytes, System::String ^ hostname, int port);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, string? hostname, int port);
public System.Threading.Tasks.Task<int> SendAsync (byte[] datagram, int bytes, string hostname, int port);
member this.SendAsync : byte[] * int * string * int -> System.Threading.Tasks.Task<int>
Public Function SendAsync (datagram As Byte(), bytes As Integer, hostname As String, port As Integer) As Task(Of Integer)

Параметры

datagram
Byte[]

Массив типа Byte, задающий UDP-датаграмму, которую предполагается послать в виде байтового массива.

bytes
Int32

Число байт в датаграмме.

hostname
String

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

port
Int32

Номер удаленного порта, с которым планируется обмен данных.

Возвращаемое значение

Возвращает Task<TResult>.

Исключения

dgram имеет значение null.

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

Объект UdpClient закрыт.

Произошла ошибка при обращении к сокету.

Комментарии

Этот метод отправляет датаграммы на значения, заданные параметрами hostname и port . Вы можете отправить датаграммы на широковещательный адрес по умолчанию, указав "255.255.255.255" в hostname поле значения параметра.

Если вы хотите отправить датаграммы на любой другой широковещательный адрес, используйте Client метод для получения базового Socketи задайте для параметра сокета значение SocketOptionName.Broadcast. Вы также можете отменить изменения к использованию Socket класса .

Предупреждение

Не указывайте имя узла или номер порта для этого метода, если вы уже установили удаленный узел с помощью Connect метода . В этом случае этот метод вызовет исключение SocketException. Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Send(Byte[], Int32, String, Int32).

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

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

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

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

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> datagram, string? hostname, int port, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * string * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (datagram As ReadOnlyMemory(Of Byte), hostname As String, port As Integer, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

datagram
ReadOnlyMemory<Byte>

Byte Тип ReadOnlyMemory<T> , указывающий датаграмму UDP, которую вы планируете отправить.

hostname
String

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

port
Int32

Номер удаленного порта, с которым планируется обмен данных.

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены. По умолчанию используется None.

Возвращаемое значение

Объект , ValueTask<TResult> представляющий асинхронную операцию отправки. Значение свойства Result содержит количество отправленных байтов.

Исключения

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

Объект UdpClient закрыт.

Произошла ошибка при обращении к сокету.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

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