ó
; ^c           @   s   d  d l  Td  d l Z d d d „  ƒ  YZ d d d „  ƒ  YZ e d k rü e e j ƒ d k  re d	 GHqü e j d
 d k r“ e j d
 d k r“ d	 GHqü e j d
 d k rÌ e e e j d ƒ ƒ Z e j	 ƒ  qü e e j d e e j d ƒ ƒ Z
 e
 j	 ƒ  n  d S(   iÿÿÿÿ(   t   *Nt   Serverc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   port_number(   t   selfR   (    (    s   echo.pyt   __init__   s    c         C   sÀ   t  t t ƒ } | j d |  j f ƒ | j d ƒ xs t r§ d GH| j ƒ  \ } } xE t r™ | j d ƒ j	 ƒ  } | sz Pn  d | GH| j
 | j ƒ  ƒ qU W| j ƒ  q5 W| j ƒ  t j ƒ  d  S(   Nt    i   s   The server is ready to receivei   s   Message Received: (   t   sockett   AF_INETt   SOCK_STREAMt   bindR   t   listent   Truet   acceptt   recvt   decodet   sendt   encodet   closet   syst   exit(   R   t   serverSockett   connectionSockett   addrt   message(    (    s   echo.pyt   run	   s    			
(   t   __name__t
   __module__R   R   (    (    (    s   echo.pyR      s   	t   Clientc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t	   server_ipt   server_port(   R   R   R   (    (    s   echo.pyR   )   s    	c         C   sà   t  t t ƒ } | j |  j |  j f ƒ y t d ƒ } Wn t k
 rV | j ƒ  d  SXxx | j	 ƒ  j
 ƒ  d k rÑ | j | j ƒ  ƒ | j d ƒ j ƒ  } | GHy t d ƒ } WqZ t k
 rÍ | j ƒ  d  SXqZ W| j ƒ  d  S(   Ns   Enter message: 
t   byei   (   R   R   R   t   connectR   R   t	   raw_inputt   EOFErrorR   t   lowert   stripR   R   R   R   (   R   t   clientt   from_clientt   from_server(    (    s   echo.pyR   -   s"    

	(   R   R   R   R   (    (    (    s   echo.pyR   (   s   	t   __main__i   sG   Usage: python myprog.py c <port> <address> or python myprog.py s <port>i   t   st   ci   (    (    (   R   R   R   R   R   t   lent   argvt   intt   serverR   R$   (    (    (    s   echo.pyt   <module>   s   
"!&#