1 # test asynchat -- requires threading
3 import thread
# If this fails, we can't test this module
4 import asyncore
, asynchat
, socket
, threading
, time
9 class echo_server(threading
.Thread
):
12 sock
= socket
.socket(socket
.AF_INET
, socket
.SOCK_STREAM
)
13 sock
.setsockopt(socket
.SOL_SOCKET
, socket
.SO_REUSEADDR
, 1)
14 sock
.bind((HOST
, PORT
))
16 conn
, client
= sock
.accept()
18 while "\n" not in buffer:
22 buffer = buffer + data
29 class echo_client(asynchat
.async_chat
):
32 asynchat
.async_chat
.__init
__(self
)
33 self
.create_socket(socket
.AF_INET
, socket
.SOCK_STREAM
)
34 self
.connect((HOST
, PORT
))
35 self
.set_terminator("\n")
38 def handle_connect(self
):
41 def collect_incoming_data(self
, data
):
42 self
.buffer = self
.buffer + data
44 def found_terminator(self
):
45 print "Received:", `self
.buffer`
52 time
.sleep(1) # Give server time to initialize