The server port will be the first command line argument. We will use telnet as the client. It should run until one of the clients starts a line with "quit" ( or the telnet escape character '^]' ). At that point all of the socket must be closed correctly.
The program must use library functions to do all sockets and I/O operations. This means no calls to socket, bind, listen, accept, read, or write will be in your program.
NOTE: When data is sent with telnet each line will end with carriage return and newline ( no NULL ). Send it back that way or it may not display correctly on the client.
VERY IMPORTANT NOTE: As long as the descriptor for a socket is in use do NOT let the sockaddr(s) go out of scope. This will require some type of storage that maps file descriptor to the sockaddr pointer, and is persistant for multiple sockaddr(s) since there will be multiple connections.
This is due on November 10th.