Я не могу загрузить сообщение типа JSON со словарем внутри, когда клиент получает его с сервера.
Словарь содержит: сообщение, адрес отправителя, время отправки. Когда я отправляю словарь в JSON и отправляю его клиенту,клиент пытается загрузить этот dict, поэтому он не может использовать данные из словаря с сервера и распечатывать их пользователю. Также, когда клиент отправляет сообщение, он может написать «/ r» для получения данных с сервера, это означает, что клиент может получать большие данные водин раз.Это только часть кода с отправкой и получением данных с сервера и клиента
SERVER
def serialize_data(self, sending_time, message, address,):
message_dict = {
'sending_time': sending_time,
'message': message,
'sender_address': address
}
serialized_dict = dumps(message_dict)
return serialized_dict
def send_messages(self, data_dict, address):
if enable_log:
message = f'{self.get_time()}, {data_dict["message"]}, {address}'
self.save_log(message, 'a')
message = self.serialize_data(self.get_time(), data_dict['message'], address)
for client in self.connections_list:
message = dumps(message)
client.sendall(bytes(message, encoding='utf-8'))
CLIENT
def receive_data(self,):
while True:
try:
data = self.sock.recv(2048).decode('utf-8')
print(data)
data_dict = loads(data)
for d in data_dict:
d = loads(d)
d = f"{d['sending_time']} {d['sender_address']} - {d['message']}"
print(d)
except timeout:
break
Я получаю это в клиенте, когда пытаюсьполучить данные с сервера:
"{\"sending_time\": \"2019-05-17 | 21:16:32 \", \"message\": \"connected!\", \"sender_address\": \"127.0.0.1\"}""{\"sending_time\": \"2019-05-17 | 21:16:33 \", \"message\": \"abcd\", \"sender_address\": \"127.0.0.1\"}"