home *** CD-ROM | disk | FTP | other *** search
/ c't freeware shareware 1997 / CT_SW_97.ISO / mac / Software / entwickl / win95 / pw32i306.exe / eg / tcp-clt-no-filehandles < prev    next >
Text File  |  1996-06-27  |  1KB  |  56 lines

  1. #tcp-client-no-filehandles
  2.  
  3. ( $them, $port ) = @ARGV;
  4.  
  5. $port = 2345 unless $port;
  6. $them = 'localhost' unless $them;
  7.  
  8. $AF_INET = 2;
  9. $SOCK_STREAM = 1;
  10.  
  11. $SIG{'INT'} = 'dokill';
  12. sub dokill {
  13.     kill 9,$child if $child;
  14. }
  15.  
  16. $sockaddr = 'S n a4 x8';
  17.  
  18. #chop($hostname = `hostname`);
  19.  
  20. ($name,$aliases,$proto) = getprotobyname('tcp');
  21. ($name,$aliases,$port) = getservbyname($port,'tcp')
  22.     unless $port =~ /^\d+$/;;
  23. ($name,$aliases,$type,$len,$thisaddr) =
  24.     gethostbyname($hostname);
  25. ($name,$aliases,$type,$len,$thataddr) = gethostbyname($them);
  26.  
  27. $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
  28. $that = pack($sockaddr, $AF_INET, $port, $thataddr);
  29.  
  30. if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) { 
  31.     print "socket ok\n";
  32. }
  33. else {
  34.     die $!;
  35. }
  36.  
  37. if (bind(S, $this)) {
  38.     print "bind ok\n";
  39. }
  40. else {
  41.     die $!;
  42. }
  43.  
  44. if (connect(S,$that)) {
  45.     print "connect ok\n";
  46. }
  47. else {
  48.     die $!;
  49. }
  50.  
  51. select(S); $| = 1; select(STDOUT);
  52.  
  53. while( <STDIN> ) {
  54.     send( S, $_, 0 );
  55. }
  56.