School of Computing. Dublin City University.
My big idea: Ancient Brain
ACCEPT - suspend server until request.
When client request arrives: ACCEPT returns.
Start new socket (thread or process) with same properties as original, this handles the request,
server goes on waiting on original socket.
If new request arrives while spawning thread for this one, it is queued.
If queue full it is refused.
Both sides can now SEND, RECEIVE.
Connection not released until both sides do CLOSE. Typically client does it, server acks.
Can only be stopped by external kill (end process).
ACCEPT returns - client has connected.
Can both read from and write to the "socket address" sa.
Client sends the file name it wants.
Server writes the file to the socket and then closes the socket.
Back to infinite loop: ACCEPT - suspend waiting for next request.
returns file contents to stdout.$ client host filename