Bonjour
J'ai un circuit Micropython qui se reveille toute les minutes, se connecte au Wifi, ouvre une socket et tente de pousser une chaine de charactere.
De l'autre coté sur un raspberry j'ai un script python qui ouvre la même socket et essai de la lire.

Cela marche un certain temps (entre quelques cylcles et quelques heures) mais inevitablement au bout d'un momment le programme coté Raspberry n'arrive plus a lire.
Si je le redemarre coté Raspberry cela repart...

J'ai essayé de faire tourner le programme raspberry dans :
- une boucle "while True" en attente de la socket
- dans un script lancé par la crontab régulierement

=> meme probleme

C'est comme si la socket etait saturé au bout d'un certain temps?
(quand cela ne "marche plus" un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
netstat -tupln |grep 112zz
tcp        3      0 192.168.xx.yy:112zz    0.0.0.0:*               LISTEN      -
semble montrer que le process ecoute bien toujours sur le port.

Le code que je fait tourner coté Raspberry est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python3
 
import socket
 
mySocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM, proto=0, fileno=None)
mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
hostname = '192.168.xx.yy'
portno = 11222
mySocket.bind((hostname, portno))
 
mySocket.listen(2)
 
 
if __name__ == "__main__":
    #while True:
    client, client_addr = mySocket.accept()
    print('Connection established with client at address {}'.format(client_addr))
    message = client.recv(1024).decode()
    print(message)
 
    client.close()
Une idee de comment debugger ou ameliorer mon code pour que la "connection" ne se bloque pas....

Merci