def receiving(self, response): response = response.decode('ascii') print(response) rec_response = MessageBuilder.get_object_of_json(response) print(rec_response.response) print(rec_response.alert) log_config.My_log() return rec_response.response, rec_response.alert
def presence_msg(self, type="presence"): if self.name is None: self.name = input("Your name: ") pre_msg = MessageBuilder.create_presence_message(self.name) pre_msg1 = pre_msg.encode_to_json(self) pre_msg2 = pre_msg1.encode('ascii') self.s.send(pre_msg2) log_config.My_log()
class Server: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clients = [] def __init__(self, host='localhost', port=8008): self.s.bind((host, port)) log_config.My_log() @staticmethod @log def j_message(msg): print(msg) msg_j = MessageBuilder.encode_to_json(msg) return msg_j log_config.My_log() @staticmethod @log def send_response(client, code, alert=None): gen_response = MessageBuilder.create_response_message(code, alert) gen_response_json = gen_response.encode_to_json() client.send(gen_response_json.encode('ascii')) log_config.My_log() @log def run_server(self): quit_server = False while not quit_server: try: self.s.listen(99) client, addr = self.s.accept() print('Получен запрос на соединение от %s' % str(addr)) self.clients.append(client) for client in self.clients: data = client.recv(1024).decode('ascii') jd_message = self.j_message(data) try: if jd_message[0] == "presence" and (client in self.clients): self.send_response( client.name, 200, "{} is currently present.".format( jd_message.client.name)) except: self.clients.remove(client) log_config.My_log() except Exception as ex: log_config.My_log()
def run_server(self): quit_server = False while not quit_server: try: self.s.listen(1) client, addr = self.s.accept() print('Получен запрос на соединение от %s' % str(addr)) self.clients.append(client) for client in self.clients: data = client.recvfrom(1024) jd_message = self.j_message(data) try: if jd_message.action == "presence" and ( client in self.clients): self.send_response( client.name, 200, "{} is currently present.".format( jd_message.client.name)) except: self.clients.remove(client) log_config.My_log() except Exception as ex: log_config.My_log()
def sending(self): message = input('Your message: ') make_message_json = message.encode_to_json(self) self.s.send(make_message_json.encode('ascii')) log_config.My_log()
def receive_data(self): data = None while data is None: data = self.s.recv(1024) log_config.My_log()
def run_client(self): while True: self.presence_msg() response = self.s.recv(1024) response, alert = self.receiving(response) log_config.My_log()
def run_client(self): while True: self.sending("presence") response = self.s.recvfrom(1024) response, alert = self.receiving(response) log_config.My_log()
def __init__(self, host='localhost', port=8008): self.s.bind((host, port)) log_config.My_log()
def send_response(client, code, alert=None): gen_response = MessageBuilder.create_response_message(code, alert) gen_response_json = gen_response.encode_to_json() client.send(gen_response_json.encode('ascii')) log_config.My_log()