Partilhar via


Socket.BeginSendFile Método

Definição

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

Sobrecargas

Nome Description
BeginSendFile(String, AsyncCallback, Object)

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

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

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

BeginSendFile(String, AsyncCallback, Object)

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

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

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 AsyncCallback delegado.

state
Object

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

Retornos

Um IAsyncResult objeto que representa o envio assíncrono.

Exceções

O Socket objeto 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 o novo desenvolvimento. Em vez disso, use os Taskequivalentes baseados.

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 devem ser especificados. Curingas (".. \\myfile.txt") e nomes de compartilhamento UNC ("\\\diretório compartilhado\\myfile.txt") 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 para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult 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 pretendido para protocolos orientados à conexão, BeginSendFile também funciona para protocolos sem conexão, desde que você primeiro chame o Connect método ou BeginConnect o método 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 gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .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
Origem:
Socket.cs
Origem:
Socket.cs

Envia um arquivo e buffers de dados de forma assíncrona para um objeto conectado 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

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 do envio do arquivo. 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

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

callback
AsyncCallback

Um AsyncCallback delegado a ser invocado quando essa 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 IAsyncResult objeto que representa a operação assíncrona.

Exceções

O Socket objeto 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 o novo desenvolvimento. Em vez disso, use os Taskequivalentes baseados.

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 devem ser especificados. Curingas (".. \\myfile.txt") e nomes de compartilhamento UNC ("\\\diretório compartilhado\\myfile.txt") 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 para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult 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 pretendido para protocolos orientados à conexão, BeginSendFile também funciona para protocolos sem conexão, desde que você primeiro chame o Connect método ou BeginConnect o método 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 gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .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