--- /dev/null
+import sys\r
+import os\r
+from ServerUtils import serve_socket, create_listener_socket, DEFAULT_PORT\r
+\r
+\r
+def serve_in_child(sock):\r
+ """forks a child to run the server in. the parent doesnt wait() for the child, \r
+ so if you do a `ps`, you'll see zombies. but who cares. i used to do a doublefork()\r
+ for that, but it's really meaningless. anyway, when the parent dies, the zombies\r
+ die as well."""\r
+ if os.fork() == 0:\r
+ try:\r
+ serve_socket(sock)\r
+ finally:\r
+ sys.exit()\r
+\r
+def main(port = DEFAULT_PORT):\r
+ sock = create_listener_socket(port)\r
+ while True:\r
+ newsock, name = sock.accept()\r
+ serve_in_child(newsock)\r
+\r
+if __name__ == "__main__":\r
+ main()\r
+\r
+
\ No newline at end of file