Бөлісу құралы:


Socket.BeginSendFile Метод

Определение

Отправляет файл асинхронно в подключенный Socket объект.

Перегрузки

Имя Описание
BeginSendFile(String, AsyncCallback, Object)

Отправляет файл fileName в подключенный Socket объект с помощью флага UseDefaultWorkerThread .

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Отправляет файл и буферы данных асинхронно в подключенный Socket объект.

BeginSendFile(String, AsyncCallback, Object)

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

Отправляет файл fileName в подключенный Socket объект с помощью флага UseDefaultWorkerThread .

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile(string? fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, AsyncCallback callback, object state);
member this.BeginSendFile : string * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

fileName
String

Строка, содержащая путь и имя файла для отправки. Этот параметр может иметь значение null.

callback
AsyncCallback

Делегат AsyncCallback .

state
Object

Объект, содержащий сведения о состоянии для этого запроса.

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

Объект IAsyncResult , представляющий асинхронную отправку.

Исключения

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

Сокет не подключен к удаленному узлу.

Файл fileName не найден.

Только платформа .NET Framework: произошла ошибка при попытке доступа к сокету. См. раздел примечаний ниже.

Комментарии

Это важно

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

Эта перегрузка отправляет файл fileName по сокету. Если fileName он находится в локальном каталоге, он может быть определен только с именем файла; в противном случае необходимо указать полный путь и имя файла. Подстановочные знаки (".. \\myfile.txt") и имена общих папок UNC ("\\\shared directory\\myfile.txt") поддерживаются. Если файл не найден, создается исключение FileNotFoundException .

Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginSendFile для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginSendFile. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно. AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginSendFile.

Операция BeginSendFile должна быть завершена EndSendFile путем вызова метода. Как правило, метод вызывается делегатом AsyncCallback . EndSendFile блокирует вызывающий поток до завершения операции.

Хотя он предназначен для протоколов, ориентированных на подключение, BeginSendFile также работает для протоколов без подключения, при условии, что сначала вызывается Connect или BeginConnect метод для установки удаленного узла по умолчанию. При использовании протоколов без подключения необходимо убедиться, что размер файла не превышает максимальный размер пакета базового поставщика услуг. Если это делается, диаграмма данных не отправляется и BeginSendFile вызывает SocketException исключение.

Замечание

Если вы получаете SocketException исключение, используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.

Замечание

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.

Замечание

Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.

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

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

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

Отправляет файл и буферы данных асинхронно в подключенный Socket объект.

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, cli::array <System::Byte> ^ preBuffer, cli::array <System::Byte> ^ postBuffer, System::Net::Sockets::TransmitFileOptions flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile(string? fileName, byte[]? preBuffer, byte[]? postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback callback, object state);
member this.BeginSendFile : string * byte[] * byte[] * System.Net.Sockets.TransmitFileOptions * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, preBuffer As Byte(), postBuffer As Byte(), flags As TransmitFileOptions, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

fileName
String

Строка, содержащая путь и имя отправленного файла. Этот параметр может иметь значение null.

preBuffer
Byte[]

Данные, отправляемые перед отправкой файла. Этот параметр может иметь значение null.

postBuffer
Byte[]

Данные, отправляемые после отправки файла. Этот параметр может иметь значение null.

flags
TransmitFileOptions

Побитовое сочетание значений перечисления.

callback
AsyncCallback

Делегат AsyncCallback , который будет вызываться при завершении этой операции. Этот параметр может иметь значение null.

state
Object

Определяемый пользователем объект, содержащий сведения о состоянии для этого запроса. Этот параметр может иметь значение null.

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

Объект IAsyncResult , представляющий асинхронную операцию.

Исключения

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

Только платформа .NET Framework: произошла ошибка при попытке доступа к сокету. См. раздел примечаний ниже.

Операционная система не является Windows NT или более поздней версии.

–или–

Сокет не подключен к удаленному узлу.

Файл fileName не найден.

Комментарии

Это важно

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

Для этой перегрузки требуется имя файла, который нужно отправить, и побитовое сочетание значений TransmitFileOptions . Параметр preBuffer содержит все данные, которые вы хотите предшествуть файлу. postBuffer содержит данные, которые вы хотите следовать за файлом. Если fileName он находится в локальном каталоге, он может быть определен только с именем файла; в противном случае необходимо указать полный путь и имя файла. Подстановочные знаки (".. \\myfile.txt") и имена общих папок UNC ("\\\shared directory\\myfile.txt") поддерживаются. Если файл не найден, создается исключение FileNotFoundException .

Параметр flags предоставляет дополнительные сведения о передаче файлов. Дополнительные сведения об использовании этого параметра см. в разделе TransmitFileOptions.

Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginSendFile для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginSendFile. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно. AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginSendFile.

Операция BeginSendFile должна быть завершена EndSendFile путем вызова метода. Как правило, метод вызывается предоставленным AsyncCallback делегатом. EndSendFile блокирует вызывающий поток до завершения операции.

Хотя он предназначен для протоколов, ориентированных на подключение, BeginSendFile также работает для протоколов без подключения, при условии, что сначала вызывается Connect или BeginConnect метод для установки удаленного узла по умолчанию. При использовании протоколов без подключения необходимо убедиться, что размер файла не превышает максимальный размер пакета базового поставщика услуг. Если это делается, диаграмма данных не отправляется и BeginSendFile вызывает SocketException исключение.

Замечание

Если вы получаете SocketException исключение, используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.

Замечание

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.

Замечание

Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.

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