#include #include #include #include #define BUFLEN 500 main() { int sock; struct sockaddr_un addr; socklen_t addrlen; int l; char buf[BUFLEN]; struct sockaddr_un caller; int len; char sockname[] = "/tmp/xyz"; sock = socket(PF_UNIX, SOCK_DGRAM, 0); if ( sock == -1 ){ perror("socket"); exit(1); } addr.sun_family = AF_UNIX; strcpy(addr.sun_path, sockname); addrlen = strlen(sockname) + sizeof(addr.sun_family); if ( bind(sock, (struct sockaddr *) &addr, addrlen) == -1 ){ perror("bind"); exit(1); } while(1) { l = read(sock, buf, BUFLEN); if ( l == -1 ) perror("read"); if( write(sock, "thanks\n", 7) == -1 ) perror("write to socket"); write(1,buf,l); } }