
    i                     N    d dl mZmZmZ ddlmZ eddfdZeddfdZedfdZd	S )
    )absolute_importprint_functiondivision   )DEFAULT_BIND_ADDR_TUPLE2   Tc                     ddl m}m}m} |r;	 |                     |||                     ||          dz             n# |$ r Y nw xY w|                     |           ||                     |           d S d S )Nr   )
SOL_SOCKETSO_REUSEADDRerrorr   )socketr
   r   r   
setsockopt
getsockoptbindlisten)sockaddressbacklog
reuse_addrr
   r   r   s          A/usr/local/lib/python3.11/dist-packages/gevent/testing/sockets.pybind_and_listenr      s    6666666666 	OOJ OOJEEIK K K K 	 	 	D	IIgG s   .= AAc                 `    ddl m} |                                }t          || ||           |S )zKA shortcut to create a TCP socket, bind it and put it into listening state.r   r   r   r   )geventr   r   )r   r   r   r   r   s        r   tcp_listenerr   %   s=    ==??DD'7zJJJJK    c                 x    ddl m} |                    |j        |j                  }t	          || d|           |S )zKA shortcut to create a UDF socket, bind it and put it into listening state.r   r   Nr   )r   r   AF_INET
SOCK_DGRAMr   )r   r   r   r   s       r   udp_listenerr!   ,   sH    ==):;;DD'4JGGGGKr   N)	
__future__r   r   r   paramsr   r   r   r!    r   r   <module>r%      s   ( A @ @ @ @ @ @ @ @ @ + + + + + +"92RV 
 
 
 
 1"     1T      r   