home *** CD-ROM | disk | FTP | other *** search
/ WinFiles.com 1998 June / WF0698_3.ISO / chat-text / np3.exe / DATA1.CAB / Program_Executable_Files / Perl.txt < prev    next >
Text File  |  1998-05-01  |  2KB  |  93 lines

  1. #!/usr/bin/perl
  2.  
  3. # popupwrite
  4. #
  5. # writes messages to NetPopUp windows on Win95 machines
  6. # from the example file in O'Reilly's Perl book
  7. # by Brian Clayton (brian@tlg.net) 10/9/96
  8. #
  9. # format for sending data to NetPopUp (v. 2.15) is:
  10. # nickname/$0
  11. # message/$1
  12. # systemname/$2
  13. # subject/$3
  14. # priority/$4
  15.  
  16. ($message,$station,$nickname,$systemname,$subject) = @ARGV;
  17.  
  18. if ($message eq '') {
  19.   print "\n";
  20.   print "For sending messages to NetPopUp on Windows 95 machines\n";
  21.   print "\n";
  22.   print "popupwrite 'message' [tostation] [fromuser] [fromstation] ['subject']\n";
  23.   print "\n";
  24.   print " message        is a string\n";
  25.   print " tostation      is machine to write to      (default: localhost)\n";
  26.   print " fromuser       is your name                (default: login)\n";
  27.   print " fromstation    is your computer            (default: FooBar)\n";
  28.   print " subject        is the window title         (default: A MESSAGE!)\n";
  29.   print "\n";
  30.   exit;
  31. }
  32.  
  33. # DEFAULTS
  34. $station = 'localhost' unless $station;        # set to site running NetPopUp 
  35. $nickname = `whoami` unless $nickname;        # this tells who is sending 
  36. $subject = 'A MESSAGE!' unless $subject;    # title of popup
  37. $systemname = 'FooBar' unless $systemname;    # from some computer
  38. $priority = '0';                # prio=1 says alert or somesuch 
  39.  
  40. $port = 7777;                    # default netpopup port
  41.  
  42. #
  43. # Telnet code from O'Reilly
  44. #
  45.  
  46. $AF_INET = 2;
  47. $SOCK_STREAM = 1;
  48.  
  49. $sockaddr = 'S n a4 x8';
  50.  
  51. chop($hostname = `hostname`);
  52.  
  53. ($name,$aliases,$proto) = getprotobyname('tcp');
  54. ($name,$aliases,$port) = getservbyname($port,'tcp')
  55.     unless $port =~ /^\d+$/;;
  56. ($name,$aliases,$type,$len,$thisaddr) =
  57.     gethostbyname($hostname);
  58. ($name,$aliases,$type,$len,$thataddr) = gethostbyname($station);
  59.  
  60. $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
  61. $that = pack($sockaddr, $AF_INET, $port, $thataddr);
  62.  
  63. # Make the socket filehandle.
  64.  
  65. if (! (socket(S, $AF_INET, $SOCK_STREAM, $proto))) { 
  66.     print "socket failed!\n";
  67.     die $!;
  68. }
  69.  
  70. # Give the socket an address.
  71.  
  72. if (! (bind(S, $this))) {
  73.     print "bind failed!\n";
  74.     die $!;
  75. }
  76.  
  77. # Call up the server.
  78.  
  79. if (! (connect(S,$that))) {
  80.     print "connect failed!\n";
  81.     die $!;
  82. }
  83.  
  84. # Set socket to be command buffered.
  85.  
  86. select(S); $| = 1; select(STDOUT);
  87.  
  88. # Send that message!
  89.  
  90. print S "$nickname/\$0$message/\$1$systemname/\$2$subject/\$3$priority/\$4\n"; 
  91.  
  92. # da end
  93.