Hi, all! I'm learning about dealing with sockets in Perl, and I've got a question about some unexpected behaviour exhibited by the following test script.
In the case where I open a connection and then close it before $socket->accept() is called, I'd except $socket->accept() to return undef, but it never does. Will someone kindly tell me why this is? Thanks in advance! #!/usr/bin/perl use strict; use warnings; use IO::Select; use IO::Socket; my $socket = IO::Socket::INET->new( "Proto" => "tcp", "LocalPort" => "31337", "Listen" => SOMAXCONN, "Blocking" => 0) or die "Ah! Bugger!\n"; $socket->autoflush(1); my $select = IO::Select->new(); $select->add($socket); while (1) { # Accept new connections. Won't bother to process more than one # per loop iteration. my @can_read = $select->can_read(0); if (scalar @can_read > 0) { print "Connection found...\n"; print " Sleeping five seconds.\n"; sleep 5; my $client = $socket->accept(); if (not defined $client) { print " Didn't work out!"; next; } print " Accepted!\n"; } } -- Mason Loring Bliss [EMAIL PROTECTED] http://blisses.org/ "I am a brother of jackals, and a companion of ostriches." (Job 30 : 29) -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>