We're done with the client side of things.
The following are key points to remember:
- The client usually triggers communication with the resource manager via
  open() (or fopen()).
  
  
  
  
- Once the client's request has resolved to a particular
  resource manager, we never change resource managers.
- All further messages for the client's session are based on the file
  descriptor (or FILE * stream), (e.g.,
  read(),
  lseek(),
  fgets()).
  
  
  
  
  
  
  
  
  
- The session is terminated (or dissociated) when the client
  closes the file descriptor or stream (or terminates for any reason).
- All client file-descriptor-based function calls are translated into messages.