title: What is the difference between a blocking and non-blocking read?
body: <p>Add to the above question the concept of a wait/no wait indicator as a parameter to a ReadMessage function in a TCP/IP or UDP environment. </p>
  
  <p>A third party function description states that: </p>
  
  <blockquote>
    <p>This function is used to read a message from a queue which was defined by a previous registerforinput call. The input wait/no wait indicator will determine if this function will block on the queue specified, waiting for the data to be placed on the queue. If the nowait option is specified and no data is available a NULL pointer will be returned to the caller. When data available this function will return a pointer to the data read from the queue.</p>
  </blockquote>
  
  <p>What does it mean for a function to be blocking or non-blocking?</p>