1*62785Sbostic .\" Copyright (c) 1986, 1993
2*62785Sbostic .\"	The Regents of the University of California.  All rights reserved.
348154Sbostic .\"
448154Sbostic .\" %sccs.include.redist.roff%
548154Sbostic .\"
6*62785Sbostic .\"	@(#)udgramread.c	8.1 (Berkeley) 06/08/93
748154Sbostic .\"
827700Smckusick #include <sys/types.h>
927700Smckusick #include <sys/socket.h>
1027700Smckusick #include <sys/un.h>
1127700Smckusick 
1227700Smckusick /*
1327700Smckusick  * In the included file <sys/un.h> a sockaddr_un is defined as follows
1427700Smckusick  * struct sockaddr_un {
1527700Smckusick  *	short	sun_family;
1627885Skarels  *	char	sun_path[108];
1727700Smckusick  * };
1827700Smckusick  */
1927700Smckusick 
2027700Smckusick #include <stdio.h>
2127700Smckusick 
2227700Smckusick #define NAME "socket"
2327700Smckusick 
2427700Smckusick /*
2527700Smckusick  * This program creates a UNIX domain datagram socket, binds a name to it,
2627700Smckusick  * then reads from the socket.
2727700Smckusick  */
2827700Smckusick main()
2927700Smckusick {
3027884Skarels 	int sock, length;
3127700Smckusick 	struct sockaddr_un name;
3227884Skarels 	char buf[1024];
3327700Smckusick 
3427700Smckusick 	/* Create socket from which to read. */
3527700Smckusick 	sock = socket(AF_UNIX, SOCK_DGRAM, 0);
3627700Smckusick 	if (sock < 0) {
3727700Smckusick 		perror("opening datagram socket");
3827884Skarels 		exit(1);
3927700Smckusick 	}
4027700Smckusick 	/* Create name. */
4127700Smckusick 	name.sun_family = AF_UNIX;
4227700Smckusick 	strcpy(name.sun_path, NAME);
4327700Smckusick 	if (bind(sock, &name, sizeof(struct sockaddr_un))) {
4427700Smckusick 		perror("binding name to datagram socket");
4527884Skarels 		exit(1);
4627700Smckusick 	}
4727700Smckusick 	printf("socket -->%s\en", NAME);
4827700Smckusick 	/* Read from the socket */
4927700Smckusick 	if (read(sock, buf, 1024) < 0)
5027700Smckusick 		perror("receiving datagram packet");
5127700Smckusick 	printf("-->%s\en", buf);
5227884Skarels 	close(sock);
5327700Smckusick 	unlink(NAME);
5427700Smckusick }
55