В настоящее время я создаю сервер сокетов TCP на python. Сервер должен получать данные в формате json от специального подключенного клиента. Сервер должен распространять данные среди всех подключенных клиентов.
Моя проблема
Я могу получить данные от клиента и распаковать их в различные объекты JSON. Но всякий раз, когда я пытаюсь распространять (отправлять) одни и те же данные json остальным клиентам, это не работает. Однако, если я отправляю фиктивные данные, а не данные, полученные от конкретного клиента, все работает так, как должно.
Таким образом, проблема в том, что принимающая часть и отправляющая часть сервера не работают вместе.
Я знаю, что это возможно, но это просто не сработает.
Как уже упоминалось, это работает, когда я использую фиктивные данные для отправки всем клиентам.
Это наводит меня на мысль, что он не может отправлять те же данные, что и получает, даже если должен.
Пример проблемы:
def run(self):
while conn:
while True:
try:
# The receiving part
data = conn.recv(2048)
data = json.loads(data)
x = data.get("X")
z = data.get("X")
# The sending part
# It is to mention that I am looping through all clients,
# so sending to all clients is not the problem.
with client_list:
for c in CLIENTS:
message = json.dumps({"Title": "Coords", "X": x, "Z": z})
conn.sendall(coords.encode())
except Exception:
pass