Time server : Server « Network « Perl






Time server

    

#!/usr/bin/perl  -T
#Usage: timeserver [port number]

use strict;
use warnings;
$port=9876;
$AF_INET=2;
$SOCK_STREAM = 1;
$sockaddr = 'S n a4 x8';
($name,$aliases,$proto)=getprotobyname('tcp');
if($port !~ /^\d+$/){
    ($name, $aliases, $port)=getservbyport($port,'tcp');
}

print "Port = $port\n";

$this = pack($sockaddr, $AF_INET, $port, "\0\0\0\0");
select(COMM_SOCK); $| = 1; select (STDOUT);
socket(R_SOCKET, $AF_INET, $SOCK_STREAM, $proto ) ||die "socket: $!\n";
bind(R_SOCKET, $this) || die "bind: $!\n";
listen(R_SOCKET, 5) || die "connect: $!\n";

while(1){
     accept(COMM_SOCK, R_SOCKET) || die "$!\n";
     $now = time;
     print COMM_SOCK $now;
}

                      

   
    
    
    
  








Related examples in the same category

1.Two way server
2.The server and the client are on the same machine
3.Simple server
4.Socket answer
5.Socket pair
6.Socket server waiting for clients
7.Read from server
8.Send data from client to server
9.Forking Servers