title: Socket error: Address already in use
body: <p>I have a CherryPy script that I frequently run to start a server.  Today I was having to start and stop it a few times to fix some bugs in a config file, and I guess the socket didn't close all the way because when I tried to start it up again I got this issue:</p>
  
  <pre><code>[23/Mar/2015:14:08:00] ENGINE Listening for SIGHUP.
  [23/Mar/2015:14:08:00] ENGINE Listening for SIGTERM.
  [23/Mar/2015:14:08:00] ENGINE Listening for SIGUSR1.
  [23/Mar/2015:14:08:00] ENGINE Bus STARTING
  CherryPy Checker:
  The Application mounted at '' has an empty config.
  
  [23/Mar/2015:14:08:00] ENGINE Started monitor thread 'Autoreloader'.
  [23/Mar/2015:14:08:00] ENGINE Started monitor thread '_TimeoutMonitor'.
  [23/Mar/2015:14:08:00] ENGINE Error in HTTP server: shutting down
  Traceback (most recent call last):
    File "/home/andrew/virtualenvs/mikernels/lib/python2.7/site-packages/cherrypy/process/servers.py", line 188, in _start_http_thread
      self.httpserver.start()
    File "/home/andrew/virtualenvs/mikernels/lib/python2.7/site-packages/cherrypy/wsgiserver/wsgiserver2.py", line 1848, in start
      raise socket.error(msg)
  error: No socket could be created
  </code></pre>
  
  <p>I edited CherryPy's wsgiserver2.py to see the details of the socket.error and <code>error.strerror</code> was </p>
  
  <pre><code>98  (98, 'Address already in use') Address already in use
  </code></pre>
  
  <p>Meanwhile my socket is constructed as:</p>
  
  <pre><code>af = 2
  socktype = 1
  proto = 6
  canonname = ''
  sa = ('0.0.0.0', 2112)
  self.bind(af, socktype, proto)
  </code></pre>
  
  <p>(that's not exact code but that's what the values are when the error is fired)</p>
  
  <p>I checked netstat and didn't see anything listening on port 2112, what could be causing the problem and how can I go about diagnosing it?</p>
  
  <p>Thanks!</p>