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
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 ''