#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <fcntl.h>

int                 socketUn;
struct sockaddr_un  addrUn;
int                 lenUn;
int                 size;
char                datagram[1];
int                 dgramCounter = 0;
int                 maxFdToWatch;
fd_set              writeFdToWatch;


void sockInit();


int main() {

  sockInit();

  maxFdToWatch = socketUn + 1;

  while(1) {
    FD_ZERO(&writeFdToWatch);
    FD_SET(socketUn, &writeFdToWatch);

    select(FD_SETSIZE, NULL, &writeFdToWatch, NULL, NULL);
    sleep(1);

    if (FD_ISSET(socketUn, &writeFdToWatch)) {
      size = sendto(socketUn, &datagram, sizeof(datagram), 0, (struct
sockaddr *)&addrUn, lenUn);
      if (size == -1) perror("sendto failed");
      sleep(1);
    }

    dgramCounter++;

    FD_ZERO(&writeFdToWatch);
  }
}

void sockInit() {
  socketUn = socket(AF_UNIX, SOCK_DGRAM, 0);
  if (socketUn == -1) perror("socket failed");
  addrUn.sun_family = AF_UNIX;
  strcpy(addrUn.sun_path, "/tmp/tempUn");
  lenUn = strlen(addrUn.sun_path) + sizeof(addrUn.sun_family);
}

