Initial revision
authorroland <roland>
Tue, 10 Nov 1992 00:22:58 +0000 (00:22 +0000)
committerroland <roland>
Tue, 10 Nov 1992 00:22:58 +0000 (00:22 +0000)
manual/examples/filesrv.c [new file with mode: 0644]

diff --git a/manual/examples/filesrv.c b/manual/examples/filesrv.c
new file mode 100644 (file)
index 0000000..3596b99
--- /dev/null
@@ -0,0 +1,46 @@
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
+#define SERVER "/tmp/serversocket"
+#define MAXMSG 512
+
+int
+main (void)
+{
+  int sock;
+  char message[MAXMSG];
+  struct sockaddr_un name;
+  size_t size;
+  int nbytes;
+
+  /* Make the socket, then loop endlessly. */
+
+  sock = make_named_socket (SERVER);
+  while (1)
+    {
+      /* Wait for a datagram. */
+      size = sizeof (name);
+      nbytes = recvfrom (sock, message, MAXMSG, 0,
+                        (struct sockaddr *) & name, &size);
+      if (nbytes < 0)
+       {
+         perror ("recfrom (server)");
+         exit (EXIT_FAILURE);
+       }
+
+      /* Give a diagnostic message. */
+      fprintf (stderr, "Server: got message: %s\n", message);
+
+      /* Bounce the message back to the sender. */
+      nbytes = sendto (sock, message, nbytes, 0,
+                      (struct sockaddr *) & name, size);
+      if (nbytes < 0)
+       {
+         perror ("sendto (server)");
+         exit (EXIT_FAILURE);
+       }
+    }
+}