NET :: SNPP :: Servidor

Net :: SNPP :: Server é uma interface de objeto para criar servidores SNPP.
Baixe Agora

NET :: SNPP :: Servidor Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Al Tobey
  • Site do editor:
  • http://search.cpan.org/~tobeya/Net-SNPP-1.17/lib/Net/SNPP/Server.pm

NET :: SNPP :: Servidor Tag


NET :: SNPP :: Servidor Descrição

Net :: SNPP :: Server é uma interface de objeto para criar servidores SNPP. Net :: SNPP :: Server é uma interface de objeto para a criação de servidores SNPP. Quase tudo que você precisa para criar o seu próprio servidor SNPP está aqui neste módulo. Existe um método de retorno de chamada () que pode substituir a função padrão com seu próprio. eles. Qualquer comando SNPP pode ser substituído ou novos / personalizados podem ser criados usando custom_command (). Para comandos desativar você simplesmente não querem lidar com, o uso disable_command (). SYNOPSISThere pode ser uma sinopse aqui um dia ... METHODSnew () Criar uma escuta Net :: objeto SNPP :: Servidor em uma porta. Por padrão, ele só escuta na localhost (127.0.0.1) - especifique com diversas bases para ouvir em todos os endereços ou LocalAddr para escutar em apenas um. my $ svr = Net :: SNPP :: Server-> Novo (Porto => porta para escutar em BindTo => endereço de interface para se ligam a diversas bases => escutar em todas as interfaces se for verdade (e BindTo é desactivado) Ouça => quantas conexões simultâneas com alça (SOMAXCONN) # as duas opções seguintes só são usados por handle_client () MaxErrors => número máximo de erros antes de desconectar cliente Timeout => Tempo limite enquanto aguarda dados (usos SIGARLM)); cliente () chama accept () para você e retorna uma alça cliente. Este método irá bloquear se não houver nenhum cliente espera. O identificador retornado é uma subclasse de IO :: Handle, então todos os métodos IO :: Handle deve funcionar. my $ client = $ servidor-> cliente (); ip () Retorna o endereço IP associado com uma alça cliente. printf "conexão% s", $ client-> ip (); socket () Retorna o identificador de soquete cru. Esta existe principalmente para uso com select () ou IO :: Select. my $ selecionar = IO :: Select-> new (); $ Select-> add ($ servidor-> socket ()); conectado () Para uso com uma alça cliente. Verdadeiro se tomada servidor ainda está alive.shutdown () Desliga o soquete de servidor. $ Servidor-> shutdown (2); callback () Insira um retorno de chamada para Server.pm. $ Servidor-> callback ( 'process_page', my_function); $ Servidor-> callback ( 'validate_pager_id', my_function); $ Servidor-> callback ( 'validate_pager_pin', my_function); $ Servidor-> callback ( 'write_log', my_function); $ Servidor-> retorno ( 'create_id_and_pin', minha_funcao); process_page ($ PAGER_ID,% PAGE, @RESULTS) $ PAGER_ID = $ PAGE = {confusão => $, respostas => [],} validate_pager_id (PAGER_ID) o valor de retorno deste callback será salvo como o ID de pager que é passado para o callback process_page como o primeiro elemento da lista do primeiro argument.validate_pager_pin (VALIDATED_PAGER_ID, PIN) o valor retornado por este callback será salvo como o segundo elemento da lista em primeiro argumento para process_page. A entrada PAGER_ID a esta chamada de retorno é a saída do callback.NOTE validate_pager_id: Se você realmente se preocupam com o PIN, você deve usar esse retorno de chamada. O retorno de chamada padrão retornará 1 se o pino não é argumento set.write_logFirst é o nível de um Unix syslog, como "aviso" ou "info". O resto dos argumentos são a mensagem. valor de retorno é ignored.create_id_and_pinCreate um ID e PIN para uma message.custom_command 2way () Criar um comando personalizado ou substituir um comando padrão no handle_client (). O nome do comando deve ser de 4 letras ou números. O segundo argumento é um coderef que deve retornar um comando de texto, ou seja, "250 OK" e algum valor "definido" para continuar o ciclo cliente. +++ Se nenhum valor for definido, o cliente será desconectado depois de executar seu comando. +++ Se você precisa MSTA ou KTAG, este é o gancho que você precisa para implementar them.The sub-rotina serão passados os argumentos do comando, dividida em espaços em branco. sub my_MSTA_sub {my ($ id, $ password) = @_; # ... retorno "250 OK", 1; } $ Servidor-> custom_command ( "MSTA", my_MSTA_sub); disable_command () Especifique um comando para desativar no servidor. Isso é útil, por exemplo, se você não quiser dar suporte nível 3 comandos. $ Servidor-> disable_command ( "2WAY", "5502WAY não é suportado aqui"); O segundo argumento é uma mensagem de erro personalizada opcional. O padrão é: "500 Comando não implementado, Try Again" handle_client () Pega o resultado de US $ servidor-> cliente () e cuida de analisar a entrada do usuário. Isto deve ser bastante perto de ser compatível rfc1861. Se você tiver especificado Timeout ser algo diferente de 0 in new (), SIGARLM será usado para definir um tempo limite. Se você usar isso, não deixe de fazer sinais em consideração ao escrever seu código. fork () 'ing antes de chamar handle_client é uma boa maneira de evitar código interrompendo que não deve ser interrupted.forked_server () Cria um servidor em um processo bifurcada. O valor de retorno é uma matriz (ou ARRAYREF dependendo do contexto) contendo um tubo de apenas de leitura e o PID do novo processo. Páginas concluídas serão escritas para o tubo como um ponto e vírgula delimitado matriz. my ($ tubulação, $ pid) = $ servidor-> forked_server (); my $ linha = $ cachimbo> getline (); chomp ($ line); my ($ pgr, $ pgr,% PageData) = split (/; /, $ line); Requisitos: · Requisitos Perl: · Perl.


NET :: SNPP :: Servidor Software Relacionado