in reply to Using select() on only one socket
Hi,
Interestingly enough this code works:
The server sends the numbers from 0 to 1000 a second at a time. Maximum 5 clients are catered for.
#!/usr/bin/perl use strict; use warnings; use IO::Socket; my $server = IO::Socket::INET->new(LocalPort => 5000,Listen =>5); while (my $client = $server->accept()) { foreach my $i (0..1000) { sleep (1); print $client $i . "\n"; } close $client; }
The client looks for a 'working' socket. If nothing found it will print a dot. If found it will get a handle to read the socket.
#!/usr/bin/perl use strict; use warnings; use IO::Socket; use IO::Select; use IO::Handle; my $server = IO::Socket::INET->new(PeerAddr => "localhost",PeerPort => + 5000, Proto => "tcp"); my $sel = new IO::Select; $sel->add($server); while (1) { my @handles = $sel->can_read(0.10); if (@handles) { foreach my $s (@handles) { my $line = <$s>; print $line; } } else { print "."; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Using select() on only one socket
by ivanatora (Sexton) on Sep 04, 2005 at 10:56 UTC | |
by Crackers2 (Parson) on Sep 04, 2005 at 15:18 UTC |