Socket.EndSendFile(IAsyncResult) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает отложенную операцию асинхронной передачи файла.
public:
void EndSendFile(IAsyncResult ^ asyncResult);
public void EndSendFile (IAsyncResult asyncResult);
member this.EndSendFile : IAsyncResult -> unit
Public Sub EndSendFile (asyncResult As IAsyncResult)
Параметры
- asyncResult
- IAsyncResult
Объект IAsyncResult, хранящий сведения о состоянии этой асинхронной операции.
Исключения
Только .NET 8+: сокет не подключен к удаленному узлу.
только платформа .NET Framework, .NET Core и .NET 5–6: Socket объект закрыт.
Параметр asyncResult
пуст.
Параметр asyncResult
не был возвращен вызовом метода BeginSendFile(String, AsyncCallback, Object).
Метод EndSendFile(IAsyncResult) был ранее вызван для асинхронной передачи объекта BeginSendFile(String, AsyncCallback, Object).
Произошла ошибка при попытке доступа к сокету.
-или-
Только .NET 7 и более поздних версий Socket : объект был закрыт.
Комментарии
Важно!
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin*
и End*
) для разработки новых приложений. Вместо этого используйте эквиваленты на Task
основе .
EndSendFileзавершает операцию, запущенную .BeginSend Необходимо передать объект , IAsyncResult созданный соответствующим BeginSend вызовом.
Если вы используете протокол без подключения, блокируется до EndSendFile отправки датаграммы. Если вы используете протокол, ориентированный на подключение, блокируется, EndSendFile пока не будет отправлен весь файл. Нет никакой гарантии, что отправляемые данные появятся в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу до сбора значительного объема исходящих данных. Успешное выполнение BeginSendFile метода означает, что в базовой системе есть место для буферизации данных для отправки по сети.
Примечание
Если вы получаете SocketException, используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Примечание
Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в платформа .NET Framework.