Partilhar via


Socket.BeginSendFile Método

Definição

Envia um arquivo de forma assíncrona para um objeto Socket conectado.

Sobrecargas

BeginSendFile(String, AsyncCallback, Object)

Envia o arquivo fileName para um objeto Socket conectado usando o sinalizador UseDefaultWorkerThread.

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

Envia um arquivo e buffers de dados de forma assíncrona para um objeto Socket conectado.

BeginSendFile(String, AsyncCallback, Object)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia o arquivo fileName para um objeto Socket conectado usando o sinalizador 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

Parâmetros

fileName
String

Uma cadeia de caracteres que contém o caminho e o nome do arquivo a ser enviado. Esse parâmetro pode ser null.

callback
AsyncCallback

O delegado AsyncCallback.

state
Object

Um objeto que contém informações de estado para essa solicitação.

Retornos

Um objeto IAsyncResult que representa o envio assíncrono.

Exceções

O objeto Socket foi fechado.

O soquete não está conectado a um host remoto.

O arquivo fileName não foi encontrado.

.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete. Consulte a seção Comentários abaixo.

Comentários

Importante

Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin* e End*) para novo desenvolvimento. Em vez disso, use os Taskequivalentes baseados em .

Essa sobrecarga envia o arquivo fileName pelo soquete. Se fileName estiver no diretório local, ele poderá ser identificado apenas com o nome do arquivo; caso contrário, o caminho completo e o nome do arquivo deverão ser especificados. Curingas (".. \\myfile.txt") e nomes de compartilhamento UNC ("\\\\directory\\myfile.txt compartilhado") têm suporte. Se o arquivo não for encontrado, a exceção FileNotFoundException será gerada.

Você pode passar um retorno de chamada que implementa AsyncCallback para BeginSendFile ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginSendFile. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginSendFile método .

A BeginSendFile operação deve ser concluída chamando o EndSendFile método . Normalmente, o método é invocado pelo AsyncCallback delegado. EndSendFile bloqueará o thread de chamada até que a operação seja concluída.

Embora pretenda protocolos orientados a conexões, BeginSendFile também funciona para protocolos sem conexão, desde que você primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto padrão. Com protocolos sem conexão, você deve ter certeza de que o tamanho do arquivo não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e BeginSendFile gerará uma SocketException exceção.

Observação

Se você receber uma SocketException exceção, use a SocketException.ErrorCode propriedade para obter o código de erro específico.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.

Aplica-se a

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

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia um arquivo e buffers de dados de forma assíncrona para um objeto Socket conectado.

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

Parâmetros

fileName
String

Uma cadeia de caracteres que contém o caminho e o nome do arquivo a ser enviado. Esse parâmetro pode ser null.

preBuffer
Byte[]

Os dados a serem enviados antes que o arquivo seja enviado. Esse parâmetro pode ser null.

postBuffer
Byte[]

Os dados a serem enviados após o envio do arquivo. Esse parâmetro pode ser null.

flags
TransmitFileOptions

Um combinação bit a bit dos valores de enumeração.

callback
AsyncCallback

Um delegado AsyncCallback a ser invocado quando a operação for concluída. Esse parâmetro pode ser null.

state
Object

Um objeto definido pelo usuário que contém informações de estado para essa solicitação. Esse parâmetro pode ser null.

Retornos

Um objeto IAsyncResult que representa a operação assíncrona.

Exceções

O objeto Socket foi fechado.

.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete. Consulte a seção Comentários abaixo.

O sistema operacional não é o Windows NT ou posterior.

- ou -

O soquete não está conectado a um host remoto.

O arquivo fileName não foi encontrado.

Comentários

Importante

Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin* e End*) para novo desenvolvimento. Em vez disso, use os Taskequivalentes baseados em .

Essa sobrecarga requer o nome do arquivo que você deseja enviar e uma combinação bit a bit de TransmitFileOptions valores. O preBuffer parâmetro contém todos os dados que você deseja preceder o arquivo. postBuffer contém dados que você deseja seguir o arquivo. Se fileName estiver no diretório local, ele poderá ser identificado apenas com o nome do arquivo; caso contrário, o caminho completo e o nome do arquivo deverão ser especificados. Curingas (".. \\myfile.txt") e nomes de compartilhamento UNC ("\\\\directory\\myfile.txt compartilhado") têm suporte. Se o arquivo não for encontrado, a exceção FileNotFoundException será gerada.

O flags parâmetro fornece informações adicionais sobre a transferência de arquivo. Para obter mais informações sobre como usar esse parâmetro, consulte TransmitFileOptions.

Você pode passar um retorno de chamada que implementa AsyncCallback para BeginSendFile ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginSendFile. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginSendFile método .

A BeginSendFile operação deve ser concluída chamando o EndSendFile método . Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndSendFile bloqueará o thread de chamada até que a operação seja concluída.

Embora pretenda protocolos orientados a conexões, BeginSendFile também funciona para protocolos sem conexão, desde que você primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto padrão. Com protocolos sem conexão, você deve ter certeza de que o tamanho do arquivo não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e BeginSendFile gerará uma SocketException exceção.

Observação

Se você receber uma SocketException exceção, use a SocketException.ErrorCode propriedade para obter o código de erro específico.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.

Aplica-se a