asynconnect.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:aquests 作者: hansroh 项目源码 文件源码
def recv (self, buffer_size):
        if self._closed:
            # usually handshaking failure, already handled exception
            return b''

        try:
            data = self.socket.recv (buffer_size)           
            if not data:                
                self.handle_close (700, "Connection closed unexpectedly")
                return b''
            else:               
                self.set_event_time ()
                return data

        except ssl.SSLError as why:
            if why.errno == ssl.SSL_ERROR_WANT_READ:
                try: 
                    raise BlockingIOError               
                except NameError:
                    raise socket.error (EWOULDBLOCK)

            # closed connection
            elif why.errno in (ssl.SSL_ERROR_ZERO_RETURN, ssl.SSL_ERROR_EOF):
                self.handle_close (700, "Connection closed by SSL_ERROR_ZERO_RETURN or SSL_ERROR_EOF")
                return b''

            else:
                raise
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号