BSD Sockets Interface Programmer's Guide
160 Chapter 7
Using UNIX Domain Datagram Sockets
Example Using UNIX Domain Datagram Sockets
Example Using UNIX Domain Datagram
Sockets
NOTE These programs are provided as examples only of UNIX Domain
datagram socket usage and are not Hewlett-Packard supported products.
These programming examples demonstrate how to set up and use UNIX
Domain datagram sockets. These sample programs can be found in the
/usr/lib/demos/networking/af_unix directory. The client program
is intended to run in conjunction with the server program.
This example shows how to create UNIX Domain datagram sockets and
how to set up address structures for the sockets. In this example the
client process sends 2000 bytes of data to the server (five times). The
server process can receive data from any other process and will echo the
data back to the sender.
The source code for these two programs follows.
/*
* AF_UNIX datagram server process
*
* This is an example program that demonstrates the use of
* AF_UNIX datagram sockets as a BSD Sockets mechanism. This
* program contains the server and is intended to operate in
* conjunction with the client program.
*
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/un.h>
#include <stdio.h>
#include <signal.h>
#include <netdb.h>
#define SOCKET_PATH “/tmp/myserver”
#define bzero(ptr, len) memset((ptr), NULL, (len))
int timeout();
main()
{
int sock;
int slen, rlen, expect;
unsigned char sdata[5000];
struct sockaddr_un servaddr; /* address of server */
struct sockaddr_un from;
int fromlen;
/* Escape hatch so blocking calls don't wait forever */
signal(SIGALRM,timeout);