127700Smckusick .\" Copyright (c) 1986 Regents of the University of California. 227700Smckusick .\" All rights reserved. The Berkeley software License Agreement 327700Smckusick .\" specifies the terms and conditions for redistribution. 427700Smckusick .\" 5*27885Skarels .\" @(#)udgramread.c 6.3 (Berkeley) 05/08/86 627700Smckusick .\" 727700Smckusick #include <sys/types.h> 827700Smckusick #include <sys/socket.h> 927700Smckusick #include <sys/un.h> 1027700Smckusick 1127700Smckusick /* 1227700Smckusick * In the included file <sys/un.h> a sockaddr_un is defined as follows 1327700Smckusick * struct sockaddr_un { 1427700Smckusick * short sun_family; 15*27885Skarels * char sun_path[108]; 1627700Smckusick * }; 1727700Smckusick */ 1827700Smckusick 1927700Smckusick #include <stdio.h> 2027700Smckusick 2127700Smckusick #define NAME "socket" 2227700Smckusick 2327700Smckusick /* 2427700Smckusick * This program creates a UNIX domain datagram socket, binds a name to it, 2527700Smckusick * then reads from the socket. 2627700Smckusick */ 2727700Smckusick main() 2827700Smckusick { 2927884Skarels int sock, length; 3027700Smckusick struct sockaddr_un name; 3127884Skarels char buf[1024]; 3227700Smckusick 3327700Smckusick /* Create socket from which to read. */ 3427700Smckusick sock = socket(AF_UNIX, SOCK_DGRAM, 0); 3527700Smckusick if (sock < 0) { 3627700Smckusick perror("opening datagram socket"); 3727884Skarels exit(1); 3827700Smckusick } 3927700Smckusick /* Create name. */ 4027700Smckusick name.sun_family = AF_UNIX; 4127700Smckusick strcpy(name.sun_path, NAME); 4227700Smckusick if (bind(sock, &name, sizeof(struct sockaddr_un))) { 4327700Smckusick perror("binding name to datagram socket"); 4427884Skarels exit(1); 4527700Smckusick } 4627700Smckusick printf("socket -->%s\en", NAME); 4727700Smckusick /* Read from the socket */ 4827700Smckusick if (read(sock, buf, 1024) < 0) 4927700Smckusick perror("receiving datagram packet"); 5027700Smckusick printf("-->%s\en", buf); 5127884Skarels close(sock); 5227700Smckusick unlink(NAME); 5327700Smckusick } 54