title: Is Socket.close() considered a clean way to end the connection?
body: <p>As the title says - if I want to close a socket connection is it enough if I just call <code>mySocket.close()</code>? What will happen on the other side?</p>
  
  <p>Or, if it's not the way to go, what is? Do I have to send some kind of "finish" message through the socket so the other side knows it should end as well?</p>
  
  <p>Bonus question: java documentations says </p>
  
  <blockquote>
    <p>Closing this socket will also close the socket's InputStream and OutputStream.</p>
  </blockquote>
  
  <p>So is closing the socket alone enough or do I have to explicitly close the streams as well (assuming I'm not using <code>try-with-resources</code>, of course)?</p>