Exemplo de tecnologia de desempenho de soquete
Esse exemplo mostra como usar os aprimoramentos no System.Net.Sockets.Socket classe para compilação I/O para o mais alto desempenho de rede de um aplicativo de servidor que use assíncrono.
Para obter informações sobre como usar os exemplos, consulte os tópicos a seguir:
Para compilação o utilizando o aviso de comando de exemplo
em aberto a janela do aviso de comando e navegar até o subdiretório CS sob o diretório AsyncSocketServer.Para obter informações sobre as configurações necessárias e o SDK aviso de comando, consulte Como: Defina as configurações de amostra.
Tipo de MSBuild AsyncSocketServer.sln na linha de comando.Este comando criará o AsyncSocketServer e AsyncSocketClient aplicativos.
Para compilação a amostra usando o Visual Studio
Abra o Windows Explorer e navegar até o subdiretório CS sob o diretório AsyncSocketServer.
clicar duas vezes no ícone do AsyncSocketServer.sln em em aberto o arquivo no Visual Studio.
No Compilação menu, selecionar Criar solução.
Aplicativos de AsyncSocketServer e AsyncSocketClient são criados no diretório padrão \bin ou \bin\depurar.
Para executar este exemplo
navegar até o diretório que contém os arquivos executável novos, usando a janela do aviso de comando.
Tipo de AsyncSocketServer.exe na linha de comando com argumentos de linha de comando apropriadas para executar o aplicativo AsyncSocketServer.
Tipo de AsyncSocketClient.exe na linha de comando com argumentos de linha de comando apropriadas para executar o aplicativo AsyncSocketClient para testar o aplicativo AsyncSocketServer.
Requisitos
Este exemplo requer o .NET estrutura v3.5, 3.0 SP1 ou 2.0 SP1.
Demonstra
Uma série de novas classes foram adicionados sistema autônomo parte de um conjunto de aprimoramentos para o System.Net.Sockets.Socket classe que fornece um padrão assíncrono alternativo que pode ser usado por aplicativos de soquete especializado de alto desempenho. Esses aprimoramentos foram projetados especificamente para aplicativos de servidor de rede que exigem alto desempenho.Um aplicativo pode usar o padrão assíncrono avançado exclusivamente ou apenas no alvo áreas de seu aplicativo (por exemplo, ao receber grandes quantidades de dados).
O exemplo AsyncSocketServer demonstra como usar esses métodos de novos sobre o System.Net.Sockets.Socket classe implementando um servidor de eco. O servidor envia todos os dados de leitura de um cliente para o cliente.O servidor de eco implementado nesse exemplo lida com vários clientes simultaneamente (até o número máximo especificado sistema autônomo um argumento de linha de comando) e destaca alguns dos principais elementos dos métodos de soquete assíncrono com base em eventos.O exemplo AsyncSocketServer ilustra a criação de um pool de buffers de dados reutilizáveis e System.Net.Sockets.SocketAsyncEventArgs objetos de contexto sistema autônomo um método para aumentar o desempenho do servidor.
O exemplo AsyncSocketClient é um aplicativo cliente simples para usar para testar aplicativo de exemplo AsyncSocketServer.O exemplo AsyncSocketClient não está usando os novos aprimoramentos à System.Net.Sockets.Socket classe.
O aplicativo AsyncSocketServer requer quatro parâmetros da linha de comando.
AsyncSocketServer.exe <numConnections> <receiveSize > <addressFamily> <localPortNum>
sistema autônomo parâmetros são:
numConnections -O número máximo de conexões que o servidor aceitará simultaneamente.
receiveSize -Os dimensionar do buffer, em bytes, usados pelo servidor para cada operação de recebimento.
addressFamily -A família de endereços do servidor de soquete usará para escutar as conexões de entrada. Há suporte para os valores são ipv4 e ipv6.
localPortNum -A porta local ao qual o servidor irá BIND.
Um uso de exemplo para permitir 500 conexões em IPv4 com um dimensionar de buffer de 1024 byte para cada operação de recebimento e escutam na porta 8000 é o seguinte:
AsyncSocketServer.exe 500 1024 ipv4 8000
O aplicativo AsyncSocketClient requer dois parâmetros de linha de comando.
AsyncSocketClient.exe <destIPAddress> <destPortNum>
sistema autônomo parâmetros são:
destIpaddress -O endereço IP de destino de AsyncSocketServer para conectar-se a.
destPortNum -O número da porta de destino do AsyncSocketServer.
Consulte também
Referência
System.Net.Sockets.SendPacketsElement