#!/usr/bin/perl 
use strict;
use warnings;
use Socket;

my $proto = getprotobyname('tcp');
my $port = 4444;

my $servaddr = sockaddr_in($port, INADDR_ANY);

socket SERVER, PF_INET, SOCK_STREAM, $proto or die "Unable to create socket: $!";

bind SERVER, $servaddr or die "Unable to bind: $!";

listen SERVER, 10;

print "Server running on port $port...\n";
while (accept CONNECTION, SERVER) {
    select CONNECTION; $| = 1; select STDOUT;
    print "Client connected at ", scalar(localtime), "\n";
    print CONNECTION "You're connected to the server!\n";
    while (<CONNECTION>) {
        print "Client says: $_\n";
    }
    close CONNECTION;
    print "Client disconnected\n";
}