#!/usr/bin/perl use warnings; use strict; use IO::Socket qw(:DEFAULT :crlf) ; my $port = $ENV{CM_PORT} || 3013 ; my $quit = 0 ; my $session ; my $sock ; $SIG{INT} = sub { $quit++ } ; sub server { $sock = IO::Socket::INET->new( Listen => 5, LocalPort => $port, Timeout => 60*60, Reuse => 1 ) or die "Can't create listening socket: $!\n"; warn "Waiting for incoming connections on port $port...\n"; } &server ; while ( !$quit ) { next unless $session = $sock->accept; my $pport = $session->peerport; my $paddr = $session->peeraddr; my $pname = gethostbyaddr($paddr, AF_INET); my $peer = "$pname:$pport" ; warn "Connection from [$peer]\n"; while (<$session>){ chomp; my $msg_recv = $_ ; my $msg_out = ("I have received your message[server]-THISISTHEEND") . CRLF ; print $session $msg_out ; print " Received=> $msg_recv \n"; } warn "Connection from [$peer] finished\n"; close $session ; }