Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Socket.SendPacketsAsync

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

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

public bool SendPacketsAsync(
	SocketAsyncEventArgs e
)

Parâmetros

e
Tipo: System.Net.Sockets.SocketAsyncEventArgs
O objeto de System.Net.Sockets.SocketAsyncEventArgs usar para esta operação assíncrona de soquete.

Valor de retorno

Tipo: System.Boolean
Retorna true se a operação de E/S está pendente. O evento de SocketAsyncEventArgs.Completed no parâmetro de e será gerado após a conclusão da operação.
Retorna false se a operação de E/S terminado de forma síncrona. Nesse caso, o evento de SocketAsyncEventArgs.Completed no parâmetro de e não será gerado e o objeto de e passado como um parâmetro pode ser examinado imediatamente após a chamada de método retorna para recuperar o resultado da operação.

ExceçãoCondição
FileNotFoundException

O arquivo especificado na propriedade de SendPacketsElement.FilePath não foi encontrado.

InvalidOperationException

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

NotSupportedException

São necessários o Windows XP ou posterior para este método. Esta exceção também ocorre se Socket não está conectado a um host remoto.

ObjectDisposedException

Socket foi fechada.

SocketException

Socket sem conexão está sendo usado e o arquivo que está sendo fornecido excede o tamanho máximo de pacote de transporte subjacente.

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

Se System.Net.Sockets.SendPacketsElement referencia um arquivo no diretório de trabalho, pode ser identificado com apenas o nome do arquivo; caso contrário, o caminho completo e o nome de arquivo devem ser especificados. Os nomes de caracteres curinga e de compartilhamento UNC são suportados. Se o arquivo não for encontrado, FileNotFoundException é lançada.

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

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

As seguintes propriedades e eventos no objeto de System.Net.Sockets.SocketAsyncEventArgs são necessários com êxito chamar este método:

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

Este método usa a função de TransmitPackets localizada na 2 API do Windows. Para obter mais informações sobre a função de TransmitPackets e seus sinalizadores, consulte a documentação de soquetes do Windows na Biblioteca MSDN.

Embora programado para protocolos orientados a conexões, o método de SendPacketsAsync também funciona para protocolos sem conexão, desde que você primeiro chamada BeginConnect, Connect, ou método de ConnectAsync para estabelecer um host remoto padrão. Com protocolos sem conexão, você também deve assegurar-se que o tamanho do arquivo não excede o tamanho máximo de pacote de provedor de serviços subjacente. Se fizer isso, a datagrama não são enviados e os SendPacketsAsync de gera uma exceção de SocketException .

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

Em edições de cliente Windows, o método de SendPacketsAsync é otimizado para o uso de memória e mínima de recurso.

O uso do sinalizador de TransmitFileOptions.UseKernelApc na propriedade de SocketAsyncEventArgs.SendPacketsFlags no parâmetro de e pode fornecer benefícios de desempenho significativo. Se o segmento que inicia a chamada de método SendPacketsAsync está sendo usado para cálculos pesado, é possível, embora improvável, que os APCs podem ser impedidos de iniciar. Observe que há uma diferença entre o kernel e o modo de usuário APCs. O núcleo APCs inicia quando um segmento está em um estado de espera. O modo de usuário APCs inicia quando um segmento está em um estado de espera alertable

.NET Framework

Com suporte em: 4.5, 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft