Ejemplo n.º 1
0
    def receive(self):

        self.buff = ''
        self.msg_buff = ''

        while self.isRunning:
            try:
                data = self.s.recv(MAX_RECV_SIZE)
            except Exception, e:
                print(self.host, self.port, e)
                raise e

            if not data:
                time.sleep(0.01)
                continue

            self.buff += data

            while self.isRunning:

                packet = Packet.sniff(self.buff)
                if packet is None:
                    break

                # Slice buffer
                self.buff = self.buff[packet.size():]

                # Append text data
                self.msg_buff += packet.body

                while self.isRunning:

                    message = Message.sniff(self.msg_buff)
                    if message is None:
                        break

                    # Slice message buffer
                    self.msg_buff = self.msg_buff[(
                        message.size() +
                        1):]  # +1 means to skip '\0' in the end

                    yield message
Ejemplo n.º 2
0
    def receive(self):

        self.buff = ''
        self.msg_buff = ''

        while True:

            data = self.s.recv(MAX_RECV_SIZE)

            if not data:
                time.sleep(0.1)
                continue

            self.buff += data

            while True:

                packet = Packet.sniff(self.buff)
                if packet is None:
                    break

                # Slice buffer
                self.buff = self.buff[packet.size():]

                # Append text data
                self.msg_buff += packet.body

                while True:

                    message = Message.sniff(self.msg_buff)
                    if message is None:
                        break

                    # Slice message buffer
                    self.msg_buff = self.msg_buff[(
                        message.size() +
                        1):]  # +1 means to skip '\0' in the end

                    yield message
Ejemplo n.º 3
0
    def receive(self):

        self.buff = ''
        self.msg_buff = ''

        while True:

            data = self.s.recv(MAX_RECV_SIZE)

            if not data:
                time.sleep(0.01)
                continue

            self.buff += data

            while True:

                packet = Packet.sniff(self.buff)
                if packet is None:
                    break

                # Slice buffer
                self.buff = self.buff[packet.size():]

                # Append text data
                self.msg_buff += packet.body

                while True:

                    message = Message.sniff(self.msg_buff)
                    if message is None:
                        break

                    # Slice message buffer
                    self.msg_buff = self.msg_buff[(message.size() + 1):]  # +1 means to skip '\0' in the end

                    yield message