???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
UˆŠZ{	  ã               @   s¶   d dl Z d dlZd dlZG dd„ dƒZdd„ Zedkr²d dlZejejejƒZ	e	j
d
ƒ e	jƒ ZeeƒZejejejƒZej
dƒ ejƒ Zejegg g deƒ ejƒ Zeeeƒƒ dS )é    Nc               @   s6   e Zd Zdd„ Zdd„ Zddd„Zdd	„ Zd
d„ ZdS )ÚNonBlockingFilec             C   s@   || _ tj| j jƒ tjtjƒ g | _g | _g | _d | _	d | _
d S )N)ÚfdÚfcntlÚfilenoÚF_SETFLÚosÚO_NDELAYÚread_fd_setÚwrite_fd_setÚ
exc_fd_setÚ	user_dataÚcallback)Úselfr   © r   ú!/usr/lib/python3.6/nonblocking.pyÚ__init__
   s    zNonBlockingFile.__init__c             C   sH   || _ x$| j D ]}tj|jƒ tjtjƒ qW || _|| _|| _|| _	d S )N)
r	   r   r   r   r   r   r
   r   r   r   )r   r	   r
   r   r   r   Úfr   r   r   Úset_callback   s    zNonBlockingFile.set_callbackr   c             C   s¨   x’d}| j | jg }| j}| j}td|ƒ tj|||ƒ\}}}td|||ƒ | j|krfd}|j| jƒ | jrŠ|sx|sx|rŠ| j|||| jƒ |rP qW tdƒ | jj	|ƒS )Nr   zCalling selectzSelect returnedé   Z	Returning)
r	   r   r
   r   ÚprintÚselectÚremover   r   Úread)r   ZamtZstatus_changedZreadfdsZwritefdsZexcfdsr   r   r   r   !   s"    

zNonBlockingFile.readc             C   s   | j j|ƒS )N)r   Úwrite)r   Údatar   r   r   r   7   s    zNonBlockingFile.writec             C   s   t | j|ƒS )N)Úgetattrr   )r   Únamer   r   r   Ú__getattr__:   s    zNonBlockingFile.__getattr__N)r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   	   s
   
r   c             C   s"   t d| ||ƒ t | d jƒ ƒ d S )NzCallback calledr   )r   r   )ÚrÚwÚer   r   r   r   r   =   s    r   Ú__main__Ú	localhosté³  é´  )r%   r&   )r%   r'   )r   r   r   r   r   r   ZsocketZAF_INETZSOCK_STREAMÚsZconnectÚmakefiler   ZssÚs2r   r   Zxxr   Úlenr   r   r   r   Ú<module>   s    4

