[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
Communications Programming Concepts

Sending UNIX Datagrams Example Program

/*
 * This program fragment sends a datagram to a receiver whose
 * name is retrieved from the command line arguments.  The form 
 * of the command line is udgramsend pathname.
 */
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <stdio.h>
#define DATA "The sea is calm tonight, the tide is full..."
main(argc, argv)
   int argc;
   char *argv[];
{
   int sock;
   struct sockaddr_un name;
   /* Create socket on which to send. */
   sock = socket(AF_UNIX, SOCK_DGRAM, 0);
   if (sock < 0) {
      perror("opening datagram socket");
      exit(1);
   }
   /* Construct name of socket to send to. */
   name.sun_family = AF_UNIX;
   strcpy(name.sun_path, argv[1]);
   name.sun_len = strlen(name.sun_path);
   /* Send message. */
   if (sendto(sock, DATA, sizeof(DATA), 0, (struct sockaddr *)&name,
       sizeof(struct sockaddr_un)) < 0) {
      perror("sending datagram message");
   }
   close(sock); 
}

[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]