Esempio n. 1
0
    def loop(self):
        while True:
            buff = self._queue.get()

            #调试输出
            if TEST:
                if SECRET_DATA_OPEN:
                    buff_decode = decode(buff, iszip=True)
                else:
                    buff_decode = buff

                if not buff_decode.startswith('{"opt_id":1,'):  #心跳不打印
                    datetime = time.strftime('%Y-%m-%d %H:%M:%S',
                                             time.localtime(time.time()))
                    print '-' * 80
                    print '--- ', datetime, time.time(
                    ), ' -- Socket send >> ', self._channel.peername
                    print '-- ', buff_decode

            packed_buff_len = struct.pack(LEN_HEADER, len(buff))
            try:
                result = self._channel._socket.sendall(packed_buff_len + buff)
            except Exception:
                break
            if result is not None:
                break
Esempio n. 2
0
        def recv():
            try:
                buff = recv_bytes(LEN_HEADER_SIZE)
                if not buff:
                    return ''
                packet_len = int(struct.unpack(LEN_HEADER, buff)[0])

                if packet_len > 8 * 1024:
                    return ''

                buff = recv_bytes(packet_len)

                if SECRET_DATA_OPEN:
                    try:
                        return decode(buff, iszip=True)
                    except:
                        return buff  #如果解密异常 就不解密
                else:
                    return buff
            except gevent.socket.error:
                return ''