home *** CD-ROM | disk | FTP | other *** search
- #tcp-server-no-filehandles
- ($port) = @ARGV;
- $port = 2345 unless $port;
-
- $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(NS); $| = 1; select(stdout);
-
- socket(S, $AF_INET, $SOCK_STREAM, $proto) || die "socket: $!";
- bind(S,$this) || die "bind: $!";
- listen(S,5) || die "connect: $!";
-
- select(S); $| = 1; select(stdout);
-
- print "Listening for connection....\n";
-
- ($addr = accept(NS,S)) || die $!;
-
- print "accept ok\n";
-
- ($af,$port,$inetaddr) = unpack($sockaddr,$addr);
- @inetaddr = unpack('C4',$inetaddr);
- print "$af $port @inetaddr\n";
-
- while ( recv( NS, $_, 100, 0 ) ) {
- print;
-
- }
- close(NS);
-