Toon posts:

[perl] IO::Select

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben best wel een perl n00b, en was ff aan et kloten met sockets en IO::select
ik heb et volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use IO::Socket;
use IO::Select;

$file = "/~blasty/logo.jpg";

$sock = new IO::Socket::INET (PeerAddr => 'irc.xs4all.nl', PeerPort => 6667, Proto => 'tcp', Type => SOCK_STREAM) || die "kanker!";

$selr = new IO::Select->new($sock);

while(1)
    {
    while(@ready = $selr->can_read(0))
        {
            $buffer = <$sock>;
            print $buffer;
        }
    }

zit zou dus met ircnet moeten verbinden en de MOTD etc. outputten.
maar et werkt nie :(
geen errors ofzo
maar ik krijg gewoon nie op et scherm
help me! :)

Verwijderd

zet eens een print binnen deze loop:
code:
1
2
3
4
5
while(@ready = $selr->can_read(0))
        {
            $buffer = <$sock>;
            print $buffer;
        }

om te zien of die ook echt haalt...

Verwijderd

Topicstarter
als ik dit doe, voert ie me prog uit, en stopt na 2 seconden maat laat niets zien :?

  • Juup
  • Registratie: Februari 2000
  • Niet online
Probeer eens uit te gaan van een simpeler socket scriptje dat een HTTP head ophaalt. Werk dan van daaruit verder. Probeer anders ook eens een andere host.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Verwijderd

misschien dit eens proberen?
code:
1
2
3
4
5
while($selr->can_read(0))
        {
            $buffer = <$sock>;
            print $buffer;
        }

en kijk effe in je logs of er "kanker!" in staat ( van || die "kanker!";)

Verwijderd

owh ik zie het all
code:
1
2
3
4
5
6
7
8
9
10
11
    $s = IO::Select->new();


    $s->add(\*STDIN);
    $s->add($some_handle);


    @ready = $s->can_read($timeout);


    @ready = IO::Select->new(@handles)->read(0);

je moet dus niet new($handle) doen maar new() en dan add($handle)

volgende keer de docs goed doorlezen he....

sjek ook IO::Select op cpan: http://search.cpan.org/doc/RSE/lcwa-1.0.0/lib/io/IO/Select.pm

en IO::Socket:
http://search.cpan.org/doc/GBARR/IO-1.20/IO/Socket.pm
Pagina: 1