- How can we tell if the next call to recv() will block?
We use the select() function to indicate which sockets are ready to be read from without blocking.
- How can you ensure that select() doesn't block for longer than a specified time?
You can pass select() a timeout parameter.
- When we used our tcp_client program to connect to a web server, why did we need to send a blank line before the web server responded?
HTTP, the web server's protocol, expects a blank line to indicate the end of the request. Without this blank line, it wouldn't know if the client was going to keep sending additional request headers.
- Does send() ever block?
Yes. You can use select() to determine when a socket is ready to be written to without blocking. Alternatively, sockets can be put into non...