After testing the test on Unix, several improvements:

- Use push() instead of send(), and make these calls in main().

- Sleep a second to give the server thread time to initialize itself.
diff --git a/Lib/test/test_asynchat.py b/Lib/test/test_asynchat.py
index 3d31524..c887cec 100644
--- a/Lib/test/test_asynchat.py
+++ b/Lib/test/test_asynchat.py
@@ -1,6 +1,6 @@
 # test asynchat -- requires threading
 
-import asyncore, asynchat, socket, threading
+import asyncore, asynchat, socket, threading, time
 
 HOST = "127.0.0.1"
 PORT = 54321
@@ -32,8 +32,6 @@
         self.connect((HOST, PORT))
         self.set_terminator("\n")
         self.buffer = ""
-        self.send("hello ")
-        self.send("world\n")
 
     def handle_connect(self):
         print "Connected"
@@ -49,7 +47,10 @@
 def main():
     s = echo_server()
     s.start()
+    time.sleep(1) # Give server time to initialize
     c = echo_client()
+    c.push("hello ")
+    c.push("world\n")
     asyncore.loop()
 
 main()