Laurence Tratt notes that the accept() call in get_request() can fail,
and suggests putting a try/except around the get_request() call in
handle_request().  (All in class TCPServer.)
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index fe1402e..1ede68d 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -207,7 +207,10 @@
 
     def handle_request(self):
         """Handle one request, possibly blocking."""
-        request, client_address = self.get_request()
+        try:
+            request, client_address = self.get_request()
+        except socket.error:
+            return
         if self.verify_request(request, client_address):
             try:
                 self.process_request(request, client_address)