Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método Socket.SendPacketsAsync (SocketAsyncEventArgs)

 

Envia uma coleção de arquivos ou na memória buffers de dados assíncrona para um conectado Socket objeto.

Namespace:   System.Net.Sockets
Assembly:  System (em System.dll)

public bool SendPacketsAsync(
	SocketAsyncEventArgs e
)

Parâmetros

e
Type: System.Net.Sockets.SocketAsyncEventArgs

O System.Net.Sockets.SocketAsyncEventArgs objeto a ser usado para esta operação de soquete assíncrono.

Valor Retornado

Type: System.Boolean

Retorna true se a operação de e/s está pendente. O SocketAsyncEventArgs.Completed eventos sobre o e parâmetro será gerado após a conclusão da operação.

Retorna false se a operação de e/s concluída de forma síncrona. Nesse caso, o SocketAsyncEventArgs.Completed evento o e parâmetro não será gerado e o e objeto passado como um parâmetro pode ser examinado imediatamente após a chamada do método retorna para recuperar o resultado da operação.

Exception Condition
FileNotFoundException

O arquivo especificado no SendPacketsElement.FilePath propriedade não foi encontrada.

InvalidOperationException

Uma operação de soquete já estava em andamento usando o System.Net.Sockets.SocketAsyncEventArgs o objeto especificado no e parâmetro.

NotSupportedException

Windows XP ou posterior é necessário para esse método. Essa exceção também ocorre se o Socket não está conectado a um host remoto.

ObjectDisposedException

O Socket foi fechado.

SocketException

Sem uma conexão Socket está sendo usado e o arquivo sendo enviadas excede o tamanho máximo do pacote de transporte subjacente.

O SendPacketsAsync método é usado para enviar uma coleção de arquivos ou na memória buffers de dados para o host remoto. O Socket já deve estar conectado ao host remoto.

Se um System.Net.Sockets.SendPacketsElement faz referência a um arquivo no diretório de trabalho, ele pode ser identificado pelo nome do arquivo; caso contrário, o caminho completo e o nome do arquivo devem ser especificados. Há suporte para curingas e nomes de compartilhamentos UNC. Se o arquivo não for encontrado, FileNotFoundException é lançada.

Para ser notificado da conclusão, você deve criar um método de retorno de chamada que implementa EventHandler < SocketAsyncEventArgs > delega e anexar o retorno de chamada para o SocketAsyncEventArgs.Completed evento.

O SocketAsyncEventArgs.SendPacketsFlags propriedade o e parâmetro fornece o provedor de serviços de soquetes de janela com informações adicionais sobre a transferência de arquivos. Para obter mais informações sobre como usar esse parâmetro, consulte TransmitFileOptions.

As seguintes propriedades e eventos sobre o System.Net.Sockets.SocketAsyncEventArgs objeto são necessárias para chamar esse método com êxito:

O chamador pode definir o SocketAsyncEventArgs.UserToken propriedade para qualquer objeto de estado do usuário desejado antes de chamar o SendPacketsAsync método, para que as informações serão recuperáveis no método de retorno de chamada. Se o retorno de chamada precisa de mais informações do que um único objeto, uma pequena classe pode ser criada para manter as outras informações de estado necessárias como membros.

Esse método usa a função TransmitPackets encontrada na API do Windows Sockets 2. Para obter mais informações sobre a função TransmitPackets e seus sinalizadores, consulte a documentação do Windows Sockets na biblioteca MSDN.

Embora destinada a protocolos orientados a conexão, o SendPacketsAsync método também funciona para protocolos sem conexão, desde que você primeiro chama o BeginConnect, Connect, ou ConnectAsync método para estabelecer um host remoto padrão. Com protocolos sem conexão, você também deve ser-se de que o tamanho do arquivo não exceda o tamanho máximo do pacote do provedor de serviço subjacente. Se isso acontecer, o datagrama não será enviado e SendPacketsAsync lança um SocketException exceção.

O SendPacketsAsync método seja otimizado de acordo com o sistema operacional em que ele é usado. Em edições do Windows server, o SendPacketsAsync método é otimizado para o alto desempenho.

Em edições de cliente do Windows, o SendPacketsAsync método é otimizado para utilização de memória e recursos mínima.

Usar o TransmitFileOptions.UseKernelApc sinalizador no SocketAsyncEventArgs.SendPacketsFlags propriedade o e parâmetro pode oferecer benefícios significativos de desempenho. Se o thread iniciando o SendPacketsAsync chamada de método está sendo usada para cálculos pesados, é possível, embora seja improvável, que APCs podem ser impedidos de iniciar. Observe que há uma diferença entre APCs kernel e o modo de usuário. Kernel APCs inicie quando um thread estiver em um estado de espera. Modo de usuário APCs inicie quando um thread está em um estado de espera podem gerar alertas

.NET Framework
Disponível desde 2.0
Retornar ao início
Mostrar: