home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume25 / sockdemo / sockt.c < prev   
Encoding:
C/C++ Source or Header  |  1991-12-12  |  1.6 KB  |  60 lines

  1. /* sockt.c -- open socket and talk into it */
  2. /* (C) 1991 Blair P. Houghton, All Rights Reserved, copying and */
  3. /* distribution permitted with copyright intact.        */
  4.  
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <sys/un.h>
  8. #include "sockl.h"
  9.  
  10. #ifdef __STDC__
  11. extern void    perror( char * );
  12. extern int    bind( int, struct sockaddr *, int );
  13. extern int    socket( int, int, int );
  14. extern int    write( int, char *, unsigned );
  15. extern char *    strcpy( char *, char *b );
  16. extern int    strlen( char * );
  17. extern void    exit( int );
  18. extern int    connect( int, struct sockaddr *, int );
  19. #endif
  20.  
  21. char *line[] = {
  22.     "Mary had a little lamb;\n",
  23.     "Her fleece was white as snow;\n",
  24.     "And everywhere that Mary went,\n",
  25.     "She told everyone that Edison invented the telephone before Bell did.\n"
  26. };
  27. int n_line = 4;
  28.  
  29. #ifdef __STDC__
  30. void main( int argc, char *argv[] )
  31. #else
  32. main(argc,argv)
  33. int argc; char *argv[];
  34. #endif
  35. {
  36.  
  37.     int plug;                /* socket to "plug" into the socket */
  38.     struct sockaddr_un socketname;    /* mode and path data for the socket */
  39.     extern int n_line;
  40.     extern char *line[];
  41.     int i;
  42.  
  43.     /* make a local-unix, stream-i/o, protocol-whatever plug */
  44.     if ( (plug = socket( AF_UNIX, SOCK_STREAM, 0 )) < 0 )
  45.     perror(argv[0]);
  46.  
  47.     /* plug it into the listening socket */
  48.     socketname.sun_family = AF_UNIX;
  49.     strcpy( socketname.sun_path, SOCKET_PATH_NAME );
  50.     if ( connect( plug, (struct sockaddr *) &socketname,
  51.           sizeof socketname ) < 0 ) {
  52.     perror(argv[0]);
  53.     exit(__LINE__);
  54.     }
  55.  
  56.     /* say something into it; something historic */
  57.     for ( i = 0; i < n_line; i++ )
  58.     write( plug, line[i], strlen(line[i]) );
  59. }
  60.