Add note about EADDRINUSE to docs
authorRyan Dahl <ry@tinyclouds.org>
Mon, 29 Nov 2010 08:20:21 +0000 (00:20 -0800)
committerRyan Dahl <ry@tinyclouds.org>
Mon, 29 Nov 2010 08:20:21 +0000 (00:20 -0800)
doc/api/net.markdown

index 62947d627a3d0f1fc91fb9754dd7b114a09a8ace..7b69a2986d8059530296791afc0a9c8bc3016f33 100644 (file)
@@ -66,6 +66,23 @@ IPv4 address (`INADDR_ANY`).
 This function is asynchronous. The last parameter `callback` will be called
 when the server has been bound.
 
+One issue some users run into is getting `EADDRINUSE` errors. Meaning
+another server is already running on the requested port. One way of handling this
+would be to wait a second and the try again. This can be done with
+
+    server.on('error', function (e) {
+      if (e.errno == require('constants').EADDRINUSE) {
+        console.log('Address in use, retrying...');
+        setTimeout(function () {
+          server.close();
+          server.listen(PORT, HOST);
+        }, 1000);
+      }
+    });
+
+(Note: All sockets in Node are set SO_REUSEADDR already)
+
+
 #### server.listen(path, [callback])
 
 Start a UNIX socket server listening for connections on the given `path`.