Esempio n. 1
0
def debug_recv(msg):

    j = {}
    for d in msg.data_list:
        if d == None:
            logging.error("get nothing for recieved data")
            sys.exit()
        j[d] = []
        dobj = msg.data_list[d]
        if isinstance(dobj, list):
            for obj_c in dobj:
                if isinstance(obj_c, object):
                    try:
                        j[d].append(json.loads(str(obj_c)))
                    except Exception as e:
                        logging.info(e)
                        j[d].append(obj_c)
                else:
                    print("================what error !?")
                    j[d].append(obj_c)
        else:
            print("================what error !?")
            j[d].append(json.loads(dobj))

    print(json.dumps(j, indent=2))
    return j
Esempio n. 2
0
 def get_content(self, data):
     if isinstance(data, str):
         logging.info("data is alread string")
         return (0, data)  #原始数据为字符串,protocol 为0,
     elif isinstance(data, bytes):
         protocol = bytes_to_int(data[0:4])
         # 待后续校验...
         # content_len = data[4:8] #数据长度
         # cs = data[8:12]         #校验值
         content = data[12:]
         if protocol == 1:
             r = (1, content.decode(encoding="utf-8"))
             return r
         elif protocol == 2:
             json_data_len = bytes_to_int(data[12:16])
             json_data = data[16:(16 + json_data_len)]
             stream_data_len = bytes_to_int(
                 data[(16 + json_data_len):(20 + json_data_len)])
             stream_data = data[(20 + json_data_len):(20 + json_data_len +
                                                      stream_data_len)]
             return (2, (json_data, stream_data))
         else:
             logging.error("protocol not support!")
             return None
     else:
         logging.error("paras err ,not str or bytes but [%s] EXITING .." %
                       type(data))
         return None
Esempio n. 3
0
 def ask_user_all(self):
     logging.info("TEST ask user_all")
     regs = {"method": "ask_user_all"}
     bytes_regs = bytes(json.dumps(regs), encoding="utf-8")
     bytes_send = eotudata().bytedata(1, bytes_regs)
     self.socket_fd.send(bytes_send)
     while True:
         data, server = self.socket_fd.recvfrom(4096)
         logging.debug('RECV: {!r}'.format(data))
         return data
Esempio n. 4
0
def addr_attrs_set_to_gain(gain, addr_attr_list, addr_type):
    is_ok = 0
    for attr in addr_attr_list:
        if attr.ipstr != "0.0.0.0":
            gain[addr_type].append(attr)
            logging.info("GET %s addr[%s:%d]" %
                         (addr_type, attr.ipstr, attr.port))
            is_ok = 1

    return gain, is_ok
Esempio n. 5
0
 def register(self, auth_value=0):
     logging.info("TEST register user [%d]" % self.user_me[0])
     regs = {
         "method": "register",
         "uid": self.user_me[0],
         "channel": self.user_me[1],
         "auth_value": auth_value
     }
     bytes_regs = bytes(json.dumps(regs), encoding="utf-8")
     bytes_send = eotudata().bytedata(1, bytes_regs)
     self.socket_fd.send(bytes_send)
     while True:
         data, server = self.socket_fd.recvfrom(4096)
         logging.debug('RECV: {!r}'.format(data))
         return data
Esempio n. 6
0
    def turn_data_to_uid(self, turndata, to_uid):
        logging.info("TEST turn_data_to_uid")
        json_regs = {
            "method": "turn_data",
            "to_uid": to_uid,
            "from_uid": self.user_me
        }
        bytes_json_regs = bytes(json.dumps(json_regs), encoding="utf-8")
        bytes_stream_data = bytes(turndata, encoding="utf-8")

        bytes_send = eotudata().bytedata(2, bytes_json_regs, bytes_stream_data)
        self.socket_fd.send(bytes_send)
        while True:
            data, server = self.socket_fd.recvfrom(4096)
            logging.debug('RECV: {!r}'.format(data))
            return data
Esempio n. 7
0
    def datagramReceived(self, data, addr):

        logging.info("CLIENT[%s:%d] visit now! ----------- " %
                     (addr[0], addr[1]))
        logging.debug("SERVER RECIEVED: %s" % data)
        protocol, pdata = eotudata().get_content(
            data)  # return (protocol, data)

        if protocol == 1:
            content = pdata
            recv_json = json.loads(content)
            self.prtone_method_handle(recv_json, addr)
        elif protocol == 2:
            try:
                json_data = json.loads(pdata[0].decode(encoding="utf-8"))
                logging.debug("turn data is %s" % pdata[1])
                self.prttwo_method_handle(json_data, pdata[1], addr, data)
            except Exception as e:
                logging.error(e)
                self.reactor.stop()
Esempio n. 8
0
    def ask_user(self, user_op, try_times=10, pwd=0):

        logging.info("TEST ask user [%d]" % user_op[0])
        regs = {
            "method": "ask_user",
            "ask_uid": user_op[0],
            "channel": user_op[1],
            "pwd": pwd
        }
        bytes_regs = bytes(json.dumps(regs), encoding="utf-8")
        bytes_send = eotudata().bytedata(1, bytes_regs)
        self.socket_fd.send(bytes_send)
        while True:
            data, server = self.socket_fd.recvfrom(4096)
            if b"error" in data:
                try_times = try_times - 1
                sleep(3)
                self.ask_user(user_op)
            else:
                logging.debug('RECV: {!r}'.format(data))
                return 1, data

            if try_times == 0:
                return -1, "not found"
def hello():
    logging.info("TWISTED SERVER start on port[%d]\r\n\r\n" %(port))