
    6i                     v    d Z ddlZddlZddlZddlZddlmc mZ ddl	mc m
Z
  G d de          Zd Zd ZdS )u[   
获取默认socket
@author: baostock.com
@group : baostock.com
@contact: baostock@163.com
    Nc                   6     e Zd ZdZdZdZ fdZd Zd Z xZ	S )
SocketUtilu   Socket工具类NFc                 l    | j         &t                                          |           | _         | j         S )N)instancesuper__new__)clsargskwargs	__class__s      C/usr/local/lib/python3.11/dist-packages/baostock/util/socketutil.pyr   zSocketUtil.__new__   s*    < 77??3//CL|    c                     dt           _        d S )NT)r   	init_flag)selfs    r   __init__zSocketUtil.__init__   s    #
r   c                    	 t          j         t           j        t           j                  }|                    t          j        t          j        f           n# t          $ r t          d           Y nw xY wt          t          d|           dS )u   创建连接*   服务器连接失败，请稍后再试。default_socketN)socketAF_INETSOCK_STREAMconnectconsBAOSTOCK_SERVER_IPBAOSTOCK_SERVER_PORT	Exceptionprintsetattrcontext)r   	mySockects     r   r   zSocketUtil.connect"   s    	@fnf6HIIIt68QRSSSS 	@ 	@ 	@>?????	@)955555s   AA A32A3)
__name__
__module____qualname____doc__r   r   r   r   r   __classcell__)r   s   @r   r   r      sf        HI    $ $ $6 6 6 6 6 6 6r   r   c                      	 t          j         t           j        t           j                  } |                     t          j        t          j        f           n # t          $ r t          d           Y dS w xY w| S )u   获取默认连接r   N)	r   r   r   r   r   r   r   r   r   )socks    r   get_default_socketr)   ,   su    }V^V-?@@d-t/HIJJJJ   :;;;tt Ks   AA A43A4c                 ^   	 t          t          d          rPt          t          d          }|6| dz   } |                    t	          | d                     d}	 |                    d          }||z  }|d	d         d
k    rn*|dt          j                 }t                              |          }|	                    t          j
                  }|d         t          j        v ret          |d                   }t                              t          j        |t          j        t          j        |z                                }||z   S t                              |          S dS t          d           dS # t           $ r)}	t          |	           t          d           Y d}	~	dS d}	~	ww xY w)u   发送消息，并接受消息 r   N
zutf-8)encodingr   Ti    is   <![CDATA[]]>
r         zyou don't login.u'   接收数据异常，请稍后再试。)hasattrr    getattrsendbytesrecvr   MESSAGE_HEADER_LENGTHdecodesplitMESSAGE_SPLITCOMPRESSED_MESSAGE_TYPE_TUPLEintzlib
decompressr   r   )
msgr   receiver3   
head_byteshead_strhead_arrhead_inner_lengthbody_strexs
             r   send_msgrD   7   s   "97,-- 	&$W.>??N) Dj##E#$@$@$@AAA)..t44DtOGstt}(999 %Qt'A%AB
 <<
33#>>$*<==A;$"DDD(+HQK(8(8%$||DOGDD^_c_y  }N  `N  EN  =O  -P  -P   Q   QH#h.. <<000t$%%%%% 9 9 9b			78888888889s$   E	E9 E9 (E9 9
F,F''F,)r%   timer   	threadingr:   baostock.common.contantscommoncontantsr   baostock.common.contextr    objectr   r)   rD    r   r   <module>rM      s            ' ' ' ' ' ' ' ' ' ) ) ) ) ) ) ) ) )6 6 6 6 6 6 6 68  $9 $9 $9 $9 $9r   