i beleive i have found the bug......
in the following section of code:-
#create new client socket object sub create_new_client_sock { #create socket my $sock = IO::Socket::INET->new( PeerAddr => $conf_file->{server}, PeerPort => $conf_file->{port}, Blocking => 0, ); #check if socket exists if (!($sock)) { die "could not establish socket to " . $conf_file->{server} . +":" . $conf_file->{port} . "\n"; } #return socker object reference return $sock; }
it would appear that if i set the socket to non-blocking, the script fails with the symptoms described. but if i set it to blocking, then it works perfectly...
i am mystified as to why, and to be frank, right now i am past caring, it has taken me all day to figure this out, including three different writes (using a while loop, event module and select).
thankyou for your patience and your help, but i think i am going to call it a day for now and try and figure out what i did wrong in the morning.
In reply to Re^4: select appears to ignore pending data on socket. it works now, but i dont know why.
by Zidane
in thread select appears to ignore pending data on socket.
by Zidane
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |