27 lines
689 B
Perl
27 lines
689 B
Perl
|
#!/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;
|
||
|
}
|