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. |