
PanTasks Client / Server design

Client

client uses readline to parse the incoming commands commands are only
validated by the client before being sent to the server:

client loop:

   line = readline ()
   validate argv[0]
   send to server
   wait for response?

Server

Server does not use readline at all.  server has two threads.  first
thread listens for commands from the clients.  how many clients?  use
poll to wait for data?  can we manage enough clients with a single
thread?

the second thread runs the scheduler loop: this is the same background
check that is being run by the current model on the timeouts.

server loop:

  check socket for new incoming client connection
  check known clients for new messages
    execute new command
    send response to the client
  run the scheduler for a single loop

client / server communication is modelled after addstar client /
server?

