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
}