bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927)

diff --git a/Tools/demo/rpythond.py b/Tools/demo/rpythond.py
index 9ffe13a..a885b3e 100755
--- a/Tools/demo/rpythond.py
+++ b/Tools/demo/rpythond.py
@@ -26,16 +26,16 @@
     s.listen(1)
     while True:
         conn, (remotehost, remoteport) = s.accept()
-        print('connection from', remotehost, remoteport)
-        request = b''
-        while 1:
-            data = conn.recv(BUFSIZE)
-            if not data:
-                break
-            request += data
-        reply = execute(request.decode())
-        conn.send(reply.encode())
-        conn.close()
+        with conn:
+            print('connection from', remotehost, remoteport)
+            request = b''
+            while 1:
+                data = conn.recv(BUFSIZE)
+                if not data:
+                    break
+                request += data
+            reply = execute(request.decode())
+            conn.send(reply.encode())
 
 def execute(request):
     stdout = sys.stdout