I think that you'd need to expand upon what type of server application you are intending to write?
Stevens list 9 different server designs:
- Iterative server (baseline measurement; no process control)
- Concurrent server, one fork per client
- Preforked, with each child calling accept
- Preforked, with file locking to protect accept
- Preforked, with thread mutex locking to protect accept
- Preforked, with parent passing socket descriptor to child
- Concurrent server, create one thread per client request
- Prethreaded with mutex locking to protect accept
- Prethreaded with main thread calling accept
Each have there advantages and disadvantages. Some are more applicable to some applications than others.
Salient information would include such things as:
- tcp/udp?
- How many clients?
- What volumes of data up and down?
- Are each client/server interaction totally independent of each other, or does the server need to coordinate between clients?
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.