title: Is there a file descriptor leak when using sockets on a linux platform?
body: <p>If I open and close a socket by calling for instance</p>
  
  <pre><code>Socket s = new Socket( ... );
  s.setReuseAddress(true);
  in = s.getInputStream();
  ...
  in.close(); 
  s.close();      
  </code></pre>
  
  <p>Linux states that this socket is still open or at least the file descriptor for the connection is presen. When querying the open files for this process by lsof, there is an entry for the closed connection:</p>
  
  <pre><code>COMMAND  PID   USER   FD   TYPE DEVICE     SIZE   NODE NAME
  java    9268 user    5u  sock    0,4           93417 can't identify protocol
  </code></pre>
  
  <p>This entry remains until the program is closed. Is there any other way to finally close the socket?
  I'm a little worried that my java application may block to many file descriptors. Is this possible? Or does java keep these sockets to re-use them even is ReuseAdress is set?</p>