Socket.BeginSendFile Método

Definição

Envia um ficheiro assíncronamente para um objeto ligado Socket .

Sobrecargas

Name Description
BeginSendFile(String, AsyncCallback, Object)

Envia o ficheiro fileName para um objeto ligado Socket usando a UseDefaultWorkerThread flag.

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

Envia um ficheiro e buffers de dados de forma assíncrona para um objeto ligado Socket .

BeginSendFile(String, AsyncCallback, Object)

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

Envia o ficheiro fileName para um objeto ligado Socket usando a UseDefaultWorkerThread flag.

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 que contém o caminho e o nome do ficheiro a enviar. Este parâmetro pode ser null.

callback
AsyncCallback

O AsyncCallback delegado.

state
Object

Um objeto que contém informação de estado para este pedido.

Devoluções

Um IAsyncResult objeto que representa o envio assíncrono.

Exceções

O Socket objeto foi encerrado.

A tomada não está ligada a um host remoto.

O ficheiro fileName não foi encontrado.

Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket. Consulte a secção de observações abaixo.

Observações

Importante

Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .

Esta sobrecarga faz com que o ficheiro fileName passe por cima do soquete. Se fileName estiver no diretório local, pode ser identificado apenas pelo nome do ficheiro; caso contrário, o caminho completo e o nome do ficheiro devem ser especificados. Curingas (".. \\myfile.txt") e nomes de partilha UNC ("\\\diretório partilhado\\myfile.txt") são suportados. Se o ficheiro não for encontrado, a exceção FileNotFoundException é lançada.

Pode enviar um callback que implementa AsyncCallback para BeginSendFile ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginSendFile. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginSendFile método.

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

Embora destinado a protocolos orientados a conexão, BeginSendFile também funciona para protocolos sem conexão, desde que primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto predefinido. Com protocolos sem conexão, deve garantir que o tamanho do seu ficheiro não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não é enviado e BeginSendFile lança uma SocketException exceção.

Note

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

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Note

O contexto de execução (o contexto de segurança, o utilizador personificado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após a primeira utilização de um determinado contexto (um método assíncrono Socket específico, uma instância específica Socket e um callback específico), as utilizações 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 ficheiro e buffers de dados de forma assíncrona para um objeto ligado 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 que contém o caminho e o nome do ficheiro a enviar. Este parâmetro pode ser null.

preBuffer
Byte[]

Os dados a serem enviados antes do ficheiro ser enviado. Este parâmetro pode ser null.

postBuffer
Byte[]

Os dados a serem enviados depois do ficheiro ser enviado. Este 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 esta operação terminar. Este parâmetro pode ser null.

state
Object

Um objeto definido pelo utilizador que contém informação de estado para este pedido. Este parâmetro pode ser null.

Devoluções

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

Exceções

O Socket objeto foi encerrado.

Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket. Consulte a secção de observações abaixo.

O sistema operativo não é Windows NT nem versões posteriores.

-ou-

A tomada não está ligada a um host remoto.

O ficheiro fileName não foi encontrado.

Observações

Importante

Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .

Esta sobrecarga requer o nome do ficheiro que queres enviar e uma combinação bit a bit de TransmitFileOptions valores. O preBuffer parâmetro contém quaisquer dados que queiras anteceder ao ficheiro. postBuffer contém dados que queres seguir ao ficheiro. Se fileName estiver no diretório local, pode ser identificado apenas pelo nome do ficheiro; caso contrário, o caminho completo e o nome do ficheiro devem ser especificados. Curingas (".. \\myfile.txt") e nomes de partilha UNC ("\\\diretório partilhado\\myfile.txt") são suportados. Se o ficheiro não for encontrado, a exceção FileNotFoundException é lançada.

O flags parâmetro fornece informações adicionais sobre a transferência de ficheiros. Para mais informações sobre como usar este parâmetro, veja TransmitFileOptions.

Pode enviar um callback que implementa AsyncCallback para BeginSendFile ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginSendFile. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginSendFile método.

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

Embora destinado a protocolos orientados a conexão, BeginSendFile também funciona para protocolos sem conexão, desde que primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto predefinido. Com protocolos sem conexão, deve garantir que o tamanho do seu ficheiro não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não é enviado e BeginSendFile lança uma SocketException exceção.

Note

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

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Note

O contexto de execução (o contexto de segurança, o utilizador personificado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após a primeira utilização de um determinado contexto (um método assíncrono Socket específico, uma instância específica Socket e um callback específico), as utilizações subsequentes desse contexto verão uma melhoria de desempenho.

Aplica-se a