|
|
1.1 root 1: /*
2: * Copyright (c) 1986 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: */
17:
18: #ifndef lint
19: char copyright[] =
20: "@(#) Copyright (c) 1986 The Regents of the University of California.\n\
21: All rights reserved.\n";
22: #endif /* not lint */
23:
24: #ifndef lint
25: static char sccsid[] = "@(#)udgramread.c 6.4 (Berkeley) 3/7/89";
26: #endif /* not lint */
27:
28: #include <sys/types.h>
29: #include <sys/socket.h>
30: #include <sys/un.h>
31:
32: /*
33: * In the included file <sys/un.h> a sockaddr_un is defined as follows
34: * struct sockaddr_un {
35: * short sun_family;
36: * char sun_path[108];
37: * };
38: */
39:
40: #include <stdio.h>
41:
42: #define NAME "socket"
43:
44: /*
45: * This program creates a UNIX domain datagram socket, binds a name to it,
46: * then reads from the socket.
47: */
48: main()
49: {
50: int sock, length;
51: struct sockaddr_un name;
52: char buf[1024];
53:
54: /* Create socket from which to read. */
55: sock = socket(AF_UNIX, SOCK_DGRAM, 0);
56: if (sock < 0) {
57: perror("opening datagram socket");
58: exit(1);
59: }
60: /* Create name. */
61: name.sun_family = AF_UNIX;
62: strcpy(name.sun_path, NAME);
63: if (bind(sock, &name, sizeof(struct sockaddr_un))) {
64: perror("binding name to datagram socket");
65: exit(1);
66: }
67: printf("socket -->%s\en", NAME);
68: /* Read from the socket */
69: if (read(sock, buf, 1024) < 0)
70: perror("receiving datagram packet");
71: printf("-->%s\en", buf);
72: close(sock);
73: unlink(NAME);
74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.