Example #1
0
 def request_handler(self, data, address):
     packet = ICNPacket()
     packet.byte2icn(data)
     packet.print_packet()
     payload = packet.payload
     cmd_type = int(binascii.b2a_hex(payload[:1]), 16)
     reply = ICNPacket()
     reply.setHeader("92500000000000000000000000000925",
                     "c11e70000000000000000000000c11e7", "00")
     if cmd_type == 1:
         reply.setPayload(self.register(payload))
     elif cmd_type == 3:
         reply.setPayload(self.query_na(payload))
     reply.fill_packet()
     reply.print_packet()
     self.send(reply, address)
Example #2
0
 def send(self, packet):
     data = packet.icn2byte()
     if len(data) > self.UDP_MTU:
         return None
     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     sock.sendto(data, (self.ncs_address, self.ncs_port))
     sock.settimeout(1)
     reply = None
     try:
         ack, remote_address = sock.recvfrom(self.UDP_MTU)
         print(ack)
         reply = ICNPacket()
         reply.byte2icn(ack)
         reply.print_packet()
     except socket.timeout:
         logger.error("Timeout")
     finally:
         sock.close()
     return reply