Break lines to fix formatting problems.
[kopensolaris-gnu/glibc.git] / manual / examples / filesrv.c
1 #include <stdio.h>
2 #include <errno.h>
3 #include <stdlib.h>
4 #include <sys/socket.h>
5 #include <sys/un.h>
6
7 #define SERVER  "/tmp/serversocket"
8 #define MAXMSG  512
9
10 int
11 main (void)
12 {
13   int sock;
14   char message[MAXMSG];
15   struct sockaddr_un name;
16   size_t size;
17   int nbytes;
18
19   /* Make the socket, then loop endlessly. */
20
21   sock = make_named_socket (SERVER);
22   while (1)
23     {
24       /* Wait for a datagram. */
25       size = sizeof (name);
26       nbytes = recvfrom (sock, message, MAXMSG, 0,
27                          (struct sockaddr *) & name, &size);
28       if (nbytes < 0)
29         {
30           perror ("recfrom (server)");
31           exit (EXIT_FAILURE);
32         }
33
34       /* Give a diagnostic message. */
35       fprintf (stderr, "Server: got message: %s\n", message);
36
37       /* Bounce the message back to the sender. */
38       nbytes = sendto (sock, message, nbytes, 0,
39                        (struct sockaddr *) & name, size);
40       if (nbytes < 0)
41         {
42           perror ("sendto (server)");
43           exit (EXIT_FAILURE);
44         }
45     }
46 }