Network Communication Using UICI



The new UICI library has three parts:

A tar file containing all of the code is available.

Look at the client, the serial server, and the parent-server.

Several version of the name resolution functions are given.
To compile the a thread-safe version use -DREENTRANCY=REENTRANT_POSIX.

For example, to compile the serial server under Solaris use:
cc -DREENTRANCY=REENTRANT_POSIX -o server server.c restart.c uiciname.c uici.c -lsocket -lnsl

To compile under Linux, just remove the -lsocket.
To compile under MAC OS X remove both -lsocket and -lnsl.

Server Strategies

  1. Serial server, server.c: One request at a time
  2. Parent server, serverp.c: Create a process to handle each request
  3. Threaded server: Create a thread to handle each request
  4. Process Worker Pool: Create n processes, each calls u_accept
  5. Thread Worker Pool: Create n threads, each calls u_accept
  6. Threaded Worker Pool with Bounded Buffer:

Project Overview