コード例 #1
0
ファイル: __init__.py プロジェクト: derekzhang79/proto
	def recv_data(self, response_type):
		log.debug('receiving data...')
		total_data = ''
		while True:
			data = None
			try:
				data = self.__socket.recv(SIZE)
				
				if not data:
					log.debug('no more data in socket')
					break
					
				log.debug('read chunk %d bytes' % len(data))
				total_data += data
				if response_type:
					try:
						decoded_packet = packet.decode_answer(total_data, response_type)
						log.debug('whole data packet was received.')
						return decoded_packet
					except Exception, ex:
						continue
				
			except socket.error, err:
				#EAGAIN & EWOULDBLOCK
				if err.errno != 11:
					raise err
				elif total_data and not response_type:
					try:
						service_name, method_name, request_inst, response_class = packet.decode_request(total_data, get_pb2_module())
						return service_name, method_name, request_inst, response_class
					except Exception, ex:
						continue
コード例 #2
0
    def recv_data(self, response_type):
        log.debug('receiving data...')
        total_data = ''
        while True:
            data = None
            try:
                data = self.__socket.recv(SIZE)

                if not data:
                    log.debug('no more data in socket')
                    break

                log.debug('read chunk %d bytes' % len(data))
                total_data += data
                if response_type:
                    try:
                        decoded_packet = packet.decode_answer(
                            total_data, response_type)
                        log.debug('whole data packet was received.')
                        return decoded_packet
                    except Exception, ex:
                        continue

            except socket.error, err:
                #EAGAIN & EWOULDBLOCK
                if err.errno != 11:
                    raise err
                elif total_data and not response_type:
                    try:
                        service_name, method_name, request_inst, response_class = packet.decode_request(
                            total_data, get_pb2_module())
                        return service_name, method_name, request_inst, response_class
                    except Exception, ex:
                        continue
コード例 #3
0
ファイル: __init__.py プロジェクト: anoopjoe/proto
	def request_with_answer(self, request):
		self.send_data(request)
		data = self.recv_data()
		if not data or len(data) < 0:
			raise ProtoError('No data received as response')
		if packet.is_answer(data):
			#answer received, exiting while and return
			log.debug('Gochaa! (%s) : %s' % (len(data), data))
			return packet.decode_answer(data, get_pb2_module())
		else:
			log.debug('received some strange data while waiting for answer...')