home *** CD-ROM | disk | FTP | other *** search
/ c't freeware shareware 1997 / CT_SW_97.ISO / mac / Software / entwickl / win95 / pw32i306.exe / eg / tcp-srv-no-filehandles < prev    next >
Text File  |  1995-12-12  |  873b  |  42 lines

  1. #tcp-server-no-filehandles
  2. ($port) = @ARGV;
  3. $port = 2345 unless $port;
  4.  
  5. $AF_INET = 2;
  6. $SOCK_STREAM = 1;
  7.  
  8. $sockaddr = 'S n a4 x8';
  9.  
  10. ($name, $aliases, $proto) = getprotobyname('tcp');
  11. if ($port !~ /^\d+$/) {
  12.     ($name, $aliases, $port) = getservbyport($port, 'tcp');
  13. }
  14.  
  15. print "Port = $port\n";
  16.  
  17. $this = pack($sockaddr, $AF_INET, $port, "\0\0\0\0");
  18.  
  19. select(NS); $| = 1; select(stdout);
  20.  
  21. socket(S, $AF_INET, $SOCK_STREAM, $proto) || die "socket: $!";
  22. bind(S,$this) || die "bind: $!";
  23. listen(S,5) || die "connect: $!";
  24.  
  25. select(S); $| = 1; select(stdout);
  26.  
  27. print "Listening for connection....\n";
  28.  
  29. ($addr = accept(NS,S)) || die $!;
  30.  
  31. print "accept ok\n";
  32.  
  33. ($af,$port,$inetaddr) = unpack($sockaddr,$addr);
  34. @inetaddr = unpack('C4',$inetaddr);
  35. print "$af $port @inetaddr\n";
  36.  
  37. while ( recv( NS, $_, 100, 0 ) ) {
  38.     print;
  39.     
  40. }
  41. close(NS);
  42.