Я совсем новичок.
Написал вот такой скрипт:
#!/usr/bin/env python3 import socket import time def parse(conn, addr): print(" Data received") data = b"" f = open('../index.html', 'w') while not b"#" in data: data = conn.recv(1024) udata = data.decode("utf-8") print(udata) a = time.strftime("%Y-%m-%d-%H.%M.%S", time.localtime()) f.write(a) f.write(udata + '\n') return f.close() sock = socket.socket() sock.bind( ("", 1904) ) sock.listen(10) try: while 1: conn, addr = sock.accept() conn.settimeout(60) print("New connection from " + addr[0]) try: parse(conn, addr) except: print("Error") send_answer(conn, "500 Internal Server Error", data="Ошибка") finally: print("Connection closed") conn.close() finally: sock.close()
Назначение - принимать данные от некоего устройства и логгировать их.
Есть вопросы:
1) Скрипт “работает только один раз”. После разрыва соединения заново к нему соединится не получается.
2) Всё это крутится на хостинге и папка, куда сливаются данные (где лежит index.html) общедоступна.
По каким-то причинам файл появляется там с 10-15-минутным лагом.
Не пойму, то ли заморочки хостинга, то ли косяки у меня в скрипте.
Наверное правильно складывать всё это в MySQL базу данных, но пока в процессе освоения
3) Буду благодарен за указание на ошибки и косяки в скрипте.
Заранее огромное спасибо!