Добрый день. Помогите пожалуйста разобраться.
Я передаю на сервер от клиента JSON файл.
Порядок действий на клиенте.
Клиент->Создаём_Данные->Словарь->JSON->ConvertToBinary->Send_data_to_server->Ждём_ответа_от_сервера
Сервер успешно его принимает, я редактирую этот файл и потом мне нужно обратно переслать его клиенту. Когда я добавляю в клиенте строку для приёма данных от сервера приложение зависает и ждёт.
#———Код сервера:
#!/usr/bin/env python3
import socket
import json
HOST = ‘127.0.0.1’
PORT = 49111
print("“)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.bind((HOST, PORT))
sock.listen(1)
# Loop for internal connections;
while True:
conn, addr = sock.accept()
with conn:
print(”Connected by address: ", addr)
full_data = b''
while True:
data = conn.recv(1024)
if not data: break
full_data += data
# Convert input bytes to JSON object;
data = json.loads(full_data.decode('utf-8'))
# Check input JSON file;
if data == ‘–get-settings’:
print('IF')
else:
print(“ELSE”)
# Send data to client;
raw_data = json.dumps(data).encode('utf-8')
print(f'Size of message: {len(raw_data)} bytes.')
conn.send(raw_data)
print(“Transmit data finished!”)
#———Код клиента:
#!/usr/bin/env python3
import socket
import json
HOST = ‘localhost’
PORT = 49111
_data = {'data':{'ipaddress': ‘null’, ‘command’: ‘null’}}
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((HOST, PORT))
# Send data to server;
raw_data = json.dumps(_data).encode('utf-8')
sock.send(raw_data)
data = sock.recv(1024) # ЕСЛИ ЭТУ СТРОКУ ЗАККОМЕНТИРОВАТЬ ВСЕ РАБОТАЕТ, НО МНЕ НУЖНО ПОЛУЧИТЬ ДАННЫЕ ОТ СЕРВЕРА
print(data)