#!/usr/bin/perl -w # # file: dummy_server.pl # purpose: just to run tcp server on some port and echo all the data sent # usage: dummy_server.pl # # stolen from Perl Cookbook, section 17.2 # use strict; use File::Basename; use Socket; if (scalar (@ARGV) != 1) { print (STDERR "usage: " . basename ($0) . " \n"); exit (-1); } my $PORT = $ARGV[0]; socket (SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp')); setsockopt (SERVER, SOL_SOCKET, SO_REUSEADDR, 1); # to be able to restart our server quickly my $my_addr = sockaddr_in ($PORT, INADDR_ANY); bind (SERVER, $my_addr) or die ("couldn't bind to port ${PORT}: $!\n"); listen (SERVER, SOMAXCONN) or die ("couldn't listen on port ${PORT}: $!\n"); print (STDERR "listening on port ${PORT}...\n"); my ($client_address, $client_ip_address); while ($client_address = accept (CLIENT, SERVER)) { $client_ip_address = inet_ntoa ((sockaddr_in ($client_address))[1]); print (STDERR "got connection from ${client_ip_address}\n"); while () { print $_; } print (STDERR "$client_ip_address disconnected\n"); } close (SERVER); __END__