ocket for the purposes of this example. This means that attempting to read data from a socket that has no data available on it to read will block (and the function will not return), until data becomes available. For example, this can happen if we have sent our request, but we are still waiting for the server&#39;s response. Similarly any attempts to write to a socket that is not able to write at the moment will block until writing is possible.</p>

<p>This blocking behaviour simplifies the implementation of