На удаленном распбери крутится код собирающий и передающий данные на сервер. При разрыве соединения идет бесконечное переподключение, но если связи небыло очень долго, около суток например - то процедура переподключения где-то блокируется или висит. Сложно понять что именно произошло. Я подключаюсь по SSH, вижу работающий код, вижу как он собирает данные, но не вижу попыток подключения к серверу. (сбор данных и отправка работают в разных потоках). Если разрыв был не долгим - пару часиков допустим, то нет проблем.
def connectToServer ():
print("Server: connecting")
global ServerSock
try:
ServerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ServerSock.settimeout(10)
ServerSock.connect((ServerHost, ServerPort))
ServerSock.settimeout(10)
print("Server: connected")
except:
print("error occured")
ServerSock.close()
time.sleep(5)
connectToServer()
def runServerSending ():
connectToServer()
while True:
try:
ServerSock.sendall(json.dumps(this.__dict__).encode())
answer = ServerSock.recv(1024)
if not answer:
raise Exception('Server socket error')
except:
print("Server: send data error")
ServerSock.close()
connectToServer()
time.sleep(10)