mς
­fIc           @   s   d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d Z d Z d e i f d     YZ	 d e i
 f d     YZ d   Z e   d  S(   Ns	   127.0.0.1i1Τ  t   echo_serverc           B   s   t  Z d   Z RS(   Nc         C   sγ   t  i  t  i t  i  } | i t  i t  i d  | i t t	 f  | i
 d  | i   \ } } d } x7 d | j o) | i d  } | p Pn | | } ql Wx% | o | i |  } | | } q¦ W| i   | i   d  S(   Ni   t    s   
i
   (   t   sockett   AF_INETt   SOCK_STREAMt   sockt
   setsockoptt
   SOL_SOCKETt   SO_REUSEADDRt   bindt   HOSTt   PORTt   listent   acceptt   connt   clientt   buffert   recvt   datat   sendt   nt   close(   t   selfR   R   R   R   R   R   (    (    t/   /mit/python/lib/python2.4/test/test_asynchat.pyt   run   s$      
(   t   __name__t
   __module__R   (    (    (    R   R    	   s   t   echo_clientc           B   s,   t  Z d   Z d   Z d   Z d   Z RS(   Nc         C   sS   t  i i |   |  i t i t i  |  i t	 t
 f  |  i d  d |  _ d  S(   Ns   
R   (   t   asynchatt
   async_chatt   __init__R   t   create_socketR   R   R   t   connectR
   R   t   set_terminatorR   (   R   (    (    R   R      s
    c         C   s	   d GHd  S(   Nt	   Connected(    (   R   (    (    R   t   handle_connect&   s    c         C   s   |  i | |  _ d  S(   N(   R   R   R   (   R   R   (    (    R   t   collect_incoming_data)   s    c         C   s)   d Gt  |  i  GHd |  _ |  i   d  S(   Ns	   Received:R   (   t   reprR   R   R   (   R   (    (    R   t   found_terminator,   s    	(   R   R   R   R#   R$   R&   (    (    (    R   R      s   			c          C   sQ   t    } | i   t i d  t   }  |  i d  |  i d  t i	   d  S(   Ni   s   hello s   world
(
   R    t   st   startt   timet   sleepR   t   ct   pusht   asyncoret   loop(   R+   R'   (    (    R   t   main1   s    	
	(   t   threadR-   R   R   t	   threadingR)   R
   R   t   ThreadR    R   R   R/   (   R   R-   R   R0   R   R1   R
   R    R)   R/   R   (    (    R   t   ?   s   	-		