User Tools

Site Tools


This little script acts as a web server, but it serves only one document no matter what the requested URL was: the document embedded in the script itself. This is useful to throw on a machine in a lab environment to identify who owns it and what it's for.

use IO::Socket;
use strict;
# single-document web server
# by Tyler Bletsch
my $listenPort = 80;
my $document = join('',<DATA>);
my $sockListen = new IO::Socket::INET (LocalPort => $listenPort, Proto => 'tcp', Listen => 10, Reuse => 1);
die "Could not create socket: $!\n" unless $sockListen;
#print "Listening on port $listenPort.\n";
while (1) {
	#print "Waiting to accept on port $listenPort...\n";
	my $sockClient = $sockListen->accept(); # Get next client
	scalar <$sockClient>; # humor the client; read one line of request before responding.
	print $sockClient "HTTP/1.0 200 Okay, pal\n";
	print $sockClient "Content-type: text/html\n\n";
	print $sockClient $document;
	close $sockClient;
Your document goes here!
perl/single_document_web_server.txt · Last modified: 2009/08/13 09:56 by tkbletsc