I get an unknown error from the command prompt. My goal was to fetch a list of numbers for the socket port. Maybe it's just an XP problem ??
#!perl -w my$hostprog = 'localhost'; if(open(LOG, ">>./log.txt")){ }else{print "Couldn't open LOG";} use IO::Socket; use LWP::Simple; #get a list of socket numbers of the listening program my$numbers = get("http://$hostprog/updates/templates/listen.txt"); [EMAIL PROTECTED] = split(/\|/,$numbers); ###### Open a Socket ###### my$socket; foreach((1121,@numbers)){if(&get_sock($_)){last;}} sub get_sock{ my($number) = @_; print "$number\n"; $socket = new IO::Socket::INET( PeerAddr => $hostprog, PeerPort => $number, Type => SOCK_STREAM, Reuse => 1, Proto => 'tcp' ); if($socket){$socket->autoflush(1);print "\n using $number";return 1;} } #wait for a response from client unless($socket){print "Couldn't open socket., $!";exit(0)} while ($response = $socket->accept()) { # receive a request print LOG "Connected from: ", $response->peerhost(); # Display messages print LOG " Port: ", $response->peerport(), "\n"; my$result; # variable for Result while(<$response>) { if(/^~~~end~~~/){last;} # if message is 'end' # then exit loop print LOG "Received: $_"; # Print received message #CHECK ALL THE SERVERNAMES ON THE BLACK LIST if(open(BAD, "../dt/no_templates.txt")){ while(<BAD>){ if(/^$servername$/){ print $response "Error: A complaint against $servername has disabled this transfer.~~~end~~~"; } } close(BAD); } #HERE YOU WANT TO GET THE TEMPLATE FILES AND SEND THEM BACK separated by ~~~===~~~ if(open(TEMPLATE, "/$pkg::htmlroot/updates/templates/$_/template.txt")){ $send_files = <TEMPLATE>;$send_files .= '~~~===~~~'; close(TEMPLATE); }else{$send_files .= '~~~===~~~Error: template.txt';print LOG "Error: template.txt\n";} if(open(KEYWORDS, "/$pkg::htmlroot/updates/templates/$_/keywords.txt")){ $send_files .= <KEYWORDS>;$send_files .= '~~~===~~~'; close(KEYWORDS); }else{$send_files .= '~~~===~~~Error: keywords.txt';print LOG "Error: keywords.txt\n";} if(open(AUTHOR, "/$pkg::htmlroot/updates/templates/$_/author.txt")){ $send_files .= <AUTHOR>;$send_files .= '~~~===~~~'; close(AUTHOR); }else{$send_files .= '~~~===~~~Error: author.txt';print LOG "Error: author.txt\n";} print $response "BEGIN$send_files"; # Send received message back # to verify } chomp; # Remove the if(/^~~~end~~~/){ # You need this. Otherwise if # the client terminates abruptly # The server will encounter an # error when it sends the result back # and terminate print $response "~~~end~~~"; # send the result message print LOG "Done sending files\n\n"; # Display sent message } print LOG "Closed connection\n"; # Inform that connection to client is closed close $response; # close client print LOG "Waiting...\n"; # Wait again for next request }