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


Socket.EndSendTo(IAsyncResult) Метод

Определение

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

public:
 int EndSendTo(IAsyncResult ^ asyncResult);
public int EndSendTo (IAsyncResult asyncResult);
member this.EndSendTo : IAsyncResult -> int
Public Function EndSendTo (asyncResult As IAsyncResult) As Integer

Параметры

asyncResult
IAsyncResult

Объект IAsyncResult, в котором хранятся сведения о состоянии и любые данные, определенные пользователем, для этой асинхронной операции.

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

Если операция завершилась успешно — значение количества отправленных байтов; в противном случае — ошибка, указывающая на недопустимость объекта Socket.

Исключения

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

Параметр asyncResult не был возвращен вызовом метода BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object).

Метод EndSendTo(IAsyncResult) был ранее вызван для асинхронной передачи.

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

-или-

Только .NET 7 и более поздних версий Socket : объект был закрыт.

только платформа .NET Framework, .NET Core и .NET 5–6: Socket объект закрыт.

Комментарии

Важно!

Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для разработки новых приложений. Вместо этого используйте эквиваленты на Taskоснове .

EndSendToзавершает операцию, запущенную .BeginSendTo Необходимо передать объект , IAsyncResult созданный соответствующим BeginSendTo вызовом.

Если вы используете протокол без подключения, будет блокироваться до EndSendTo отправки датаграммы. Если вы используете протокол, ориентированный на подключение, будет блокироваться до тех пор, EndSendTo пока не будет отправлено запрошенное количество байтов. Нет никакой гарантии, что отправляемые данные появятся в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу до сбора значительного объема исходящих данных. Успешное выполнение BeginSendTo метода означает, что в базовой системе есть место для буферизации данных для отправки по сети.

Примечание

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

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в платформа .NET Framework.

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