Ejemplo n.º 1
0
 def send(self, data):
     scr = RDLaser.checksum(RDLaser.scramblestr(data))
     if self.debug:
         print u"\x1B[42m> " + self.addr + ": " + (
             scr.encode("hex")) + u"\x1B[0m  -  " + data.encode("HEX")
     RDLaser.getClient().sendto(scr, (self.addr, RDLaser.SERVER_PORT))
     data, server_addr = self.recv()
     if (data != '\xc6'):
         return False
     return True
 def send(self, addr, data):
     scr = RDLaser.scramblestr(data)
     if self.debug:
         if data[:3] == u"\xe8\x01\x00":
             uns = str(ord(data[3])) + " - " + data[4:-1]
         else:
             uns = data.encode("HEX")
         print u"\x1B[32m> " + addr + ": " + (
             scr.encode("hex")) + u"\x1B[0m  -  " + uns
     RDLaser.getServer().sendto(scr, (addr, RDLaser.CLIENT_PORT))
 def recv(self):
     data, addr = RDLaser.getServer().recvfrom(RDLaser.BUF_SIZE)
     if data[:2] != RDLaser.checksum(data[2:])[:2]:
         print data[0:2].encode("HEX")
         if self.debug:
             print(u"\x1B[31mCHECKSUM MISMATCH\x1B[0m")
         return ("", addr)
     data = RDLaser.descramblestr(data[2:])
     if self.debug:
         print(u"\x1B[34m< " + addr[0] + ": " +
               RDLaser.scramblestr(data).encode("HEX") + u"\x1B[0m  -  " +
               data.encode("HEX"))
     self.send(addr[0], '\xcc')  #send ACK
     return (data, addr)