示例#1
0
文件: friends.py 项目: AnonLEF/vomun
 def parse_packets(self):
     print "parsing packets of %s" % self.name
     packets,leftovers =  parse_packets(self.data)
     self.data = leftovers
     print "leftovers:", leftovers
     for packet in packets:
         self.handle_packets(packet[0],packet[1])
示例#2
0
 def buffer_recv(self):
     newdata = self.socket.recv(16 * 1024)
     if newdata == '':
         self.on_close()
         return []
     self.buffer += newdata
     data, self.buffer = packets.parse_packets(self.buffer)
     return data
示例#3
0
 def parse_stream(self, bytestream):
     if self.encryption_on:
         bytestream = self.decipher.decrypt(bytestream)
     parsed_packets, self.leftover = parse_packets(self.leftover + bytestream)
     if config.DEBUG:
         packet_printout("SERVER", parsed_packets, self.encryption_on, self.leftover)
     self.packets.extend(parsed_packets)
     self.packet_iter(self.packets)
示例#4
0
 def parse_stream(self, bytestream):
     if self.encryption_on:
         bytestream = self.decipher.decrypt(bytestream)
     parsed_packets, self.leftover = parse_packets(self.leftover +
                                                   bytestream)
     if config.DEBUG:
         packet_printout("SERVER", parsed_packets, self.encryption_on,
                         self.leftover)
     self.packets.extend(parsed_packets)
     self.packet_iter(self.packets)
示例#5
0
    def dataReceived(self, data):
        print (" We got a packet. ") # DEBUGGING, it appeared stalled.
        
        self.buffer += data
        if ("data_received") not in self.stats:
            self.stats['data_received'] = 0
        self.stats['data_received'] += len(data)
        
        packets, self.buffer = parse_packets(self.buffer)

        for header, payload in packets:
            if ("packets_received") not in self.stats:
                self.stats['packets_received'] = 0
            self.stats['packets_received'] += 1
            if header in self.handlers:
                self.handlers[header](payload)
            else:
                print "Didn't handle parseable packet %d!"%header
                print payload
示例#6
0
文件: derpbot.py 项目: dequis/derpbot
    def loop_iter(self):
        if self.last_sent_packet < (time.time() - 60):
            self.send_packet('ping')
        self.timers.run_timers()

        if not select.select([self.socket], [], [], 0.1)[0]:
            return

        newdata = self.socket.recv(16 * 1024)
        self.buffer += newdata
        data, self.buffer = packets.parse_packets(self.buffer)
        if not data and len(self.buffer) > 5:
            if len(self.buffer) > 20 * 1024:
                print repr(self.buffer)
                exit()

        for header, payload in data:
            self.packlog.debug('recv', header, payload)
            name = packets.packets[header].name
            yield (name, header, payload)