Обрыв связи после принятие одного POST json

Задача такова, надо ловить json'ы которые будут постоянно прилетать от хоста по адресу http://ip:port Но после получения первого json'а скрипт падает не записывая его, как отловить ошибку или понять в чем ошибка?

import os
import socket
from pathlib import Path
from dotenv import load_dotenv
import json

#Init .env
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
#create webserver socket
def start_my_server():
    socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socket_server.bind(('ip', port))
    socket_server.listen(32768)
    print('Working...')
    global data
    global HDRS
    while True:
        client_socket, address = socket_server.accept()
        data = client_socket.recv(32768).decode('utf-8')
        #print(data, '-'*20)
        # content = 'Well done'.encode('utf-8')
        HDRS = 'HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\n\r\n'
        # content = load_page_from_get_request(data)
        # client_socket.send(HDRS.encode('utf-8'))
        #a = client_socket.send(HDRS.encode('utf-8'))
        client_socket.send(HDRS.encode('utf-8'))
        #print(a, '+'*20)
        client_socket.shutdown(socket.SHUT_WR)
    # print('end')
    # socket_server.close()

def load_page_from_get_request(request_data):
    with open('data.json', 'w') as output_file:
        json.dump(data, output_file)
    # try

if __name__ == '__main__':
    start_my_server()

Ответы (1 шт):

Автор решения: Miekrif

Последняя версия моего скрипта

Ошибка была в ответе, после которого заканчивается передача, я воспользовался уже имеющимися статьями в stack

import os
import socket
from pathlib import Path
from dotenv import load_dotenv
import json
import datetime
import time

#Init .env
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)


HDRS = 'HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\n\r\n'
HDRS_404 = 'HTTP/1.1 404 OK\r\nContent-Type: text/html; charset=utf-8\r\n\r\n'
#create webserver socket
def start_my_server():
    socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socket_server.bind(('ip', port))
    socket_server.listen(32768)
    print('Working...')
    seconds = time.time()
    local_time = time.ctime(seconds)
    while True:
        client_socket, address = socket_server.accept()
        print('loop', address)
        addresses = open('ipPOST', 'a')
        addresses.write(str(address)+f'{local_time}\n')
        addresses.close()
        data = client_socket.recv(1048576).decode('utf-8')
        # content = load_page_from_get_request(data)
        # load_page_from_get_request(data)
        # global data
        client_socket.send(HDRS.encode('utf-8'))
        client_socket.shutdown(socket.SHUT_WR)
        print(data)
        with open(f'data{local_time}.json', 'w') as output_file:
            json.dump(data, output_file)
    # print('end')
    # socket_server.close()


print('loop script')
if __name__ == '__main__':
    start_my_server()
→ Ссылка