[Rio-pm] AnyEvent

Junior Moraes juniiior182 em gmail.com
Quarta Março 14 14:10:22 PDT 2012


Hi.

Xuxu's, primeiro vamos por partes.

Pra começar, você não tá incrementando a variável no while(). Daria um loop
infinito.
Segundo... Qual a função do sleep ali?
Terceiro... Se ainda sim executasse a ação solicitada, só conectaria no
socket e então não faria mais nada. LOL

[]'s

Em 14 de março de 2012 18:02, Aureliano Guedes
<guedes_1000 em hotmail.com>escreveu:

>  Valeu mesmo a ajuda, o bom de ser um "Perlzeiro" é que alem da linguagem
> maravilhosa tem uma comunidade muito
> atenta para ajudar.
>
> Poderia dar uma analizada no meu codigo.
>
>
> #!/usr/bin/perl -w
>
>
> use common::sense;
> use IO::Socket::INET;
> use AnyEvent::Util;
> use List::Util qw(shuffle);
>
>
> sub usage {
>    printf "Usage: %s <hostaddr> <port> <packs> <request>\n", $0;
>    printf "   <hostaddr> - Adress to check.\n";
>    printf "   <port>     - Port to check 1-1024(default is 80).\n";
>    printf "   <packs>    - Number of packages(default is 65000).\n";
>    printf "   <request>  - Number of requests(default is 10).\n";
>    exit;
> }
>
> my $host = $ARGV[0] || usage;
> my $port = $ARGV[1] || 80;
> my $request = $ARGV[2] || 10;
> my $a = 1;
>
> my $cv = AE::cv;
>
>     $AnyEvent::Util::MAX_FORKS = 10;
>
> while ($a <= $request){
>
>     $cv->begin;
>         fork_call {
>             sleep $a;
>         } sub {
>             &connect($port, $host);
>             $cv->end;
>         };
>
>
> }
>
> sub connect{
>     my $pr = shift;
>     my $ht = shift;
>     my $ping = IO::Socket::INET->new(
>         PeerPort => $pr ,
>         PeerAddr => $ht,
>         Proto => 'udp',
>         LocalAddr => 'localhost',
>         Broadcast => 1 )
>     or die "Can't bind : $@\n";
> }
>
> ------------------------------
> From: creaktive em gmail.com
> Date: Wed, 14 Mar 2012 17:48:24 -0300
> To: rio-pm em pm.org
> Subject: Re: [Rio-pm] AnyEvent
>
>
> Você está fazendo isso certo :)
> Um exemplo ilustrativo tosco de como usar AnyEvent para o que vc quer
> (observe a lógica; o protocolo aqui é HTTP em cima de TCP):
>
>
>
>
>         my $cv = AE::cv;
>
>
>
>
>
>         my $i = 0;
>
>
>
>
>
>
>
>
>         my $get;
>
>
>
>
>
>         $get = sub {
>
>
>
>
>
>             $cv->begin;
>
>
>
>
>
>             http_get $urls[$i++], sub {
>
>
>
>
>
>                 $get->() if $i <= $#urls;
>
>
>
>
>
>                 $cv->end;
>
>
>
>
>
>             };
>
>
>
>
>
>         };
>
>
>
>
>
>
>
>
>         for (1 .. $parallel) {
>
>
>
>
>
>             $get->();
>
>
>
>
>
>         }
>
>
>
>
>
>         $cv->wait;
>
>
>
> Mais detalhes sobre AnyEvent:
>
> http://sao-paulo.pm.org/equinocio/2011/set/13
>
> ABS()
>
>
>
> On Wed, Mar 14, 2012 at 17:29, Aureliano Guedes <guedes_1000 em hotmail.com>wrote:
>
>  Boa tarde monges,
> estou tentando entender o modulo AnyEvent, mas programação orientada a
> eventos é  russo pra minha cabeça ainda.
>
> Eu tenho uma rotina que se conecta a um IP qualquer usando protocolo UDP
> com IO::Socket::INET, e quero que essa rotina tente fazer 10 requisições
> por vez.
> Eu ja eliminei a ideia de usar threads, mas to com dificuldade de usar
> esse modulo.
>
> To totalmente perdido, pensei em usar AnyEvent::Util e List::Util, mas to
> começando a achar que não é apropriado, mas foi la que achei um exemplo
> mais ou menos...
>
> Se puderem colaborar com um exemplo bem simples para eu entender, eu
> agradeço...
>
> Att,
> Aureliano Guedes
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________ Rio-pm mailing list
> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
Junior Moraes (fvox)
Perl Developer
http://www.unsecurity.com.br/

<http://www.twitter.com/juniiormoraes> <http://pt-br.facebook.com/juniiormoraes>
  <http://plus.google.com/104958988925423385684>
<http://www.lastfm.com.br/user/juniior182>
  <http://www.delicious.com/fvox>  <http://github.com/fvox>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120314/5560e13a/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm