On receiving a client request, the name server should supply either the list of servers currently active and their addresses OR the address of a specific server as requested by the client. Implementation of either one of the schemes is acceptable.
This is done before the server exits normally.
This is done when the server exits normally.
Client programs should not crash if they are trying to connect to a server that has crashed. Also, they should not wait indefinitely for a request to be serviced. i.e., there should be a time-out for the requests that are sent out by the clients.
A server should be able to handle 2 client requests simultaneously.
The ease with which the programs can be executed - use of scripts, well defined user interfaces, etc.
IP address, port number, timestamp, server/client name, result. Diagnostic messages should be printed whenever a message is received.