title: Check if socket is connected or not
body: <p>I have an application which needs to send some data to a server at some time. The easy way would be to close the connection and then open it again when I want to send something. But I want to keep the connection open so when I want to send data, I first check the connection using this function:</p>
  
  <pre><code>bool is_connected(int sock)
  {
      unsigned char buf;
      int err = recv(sock,&amp;buf,1,MSG_PEEK);
      return err == -1 ? false : true;
  }
  </code></pre>
  
  <p>The bad part is that this doesn't work.  It hangs when there is no data to receive. What can I do?  How can I check if the connection is still open? </p>