title: Why is there "with conn" in socket library example?
body: <p>The python socket documentation gives this example : But why is <code>with conn:</code>necessary?</p>
  <pre><code># Echo server program
  import socket
  
  HOST = ''                 # Symbolic name meaning all available interfaces
  PORT = 50007              # Arbitrary non-privileged port
  with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
      s.bind((HOST, PORT))
      s.listen(1)
      conn, addr = s.accept()
      with conn:
          print('Connected by', addr)
          while True:
              data = conn.recv(1024)
              if not data: break
              conn.sendall(data)
  </code></pre>