Bonjour à tous,

Pour résumer mon code, on attend (code bloquant) de recevoir une requête en provenance d'une raspberry (contenant un identifiant), ensuite on fait mumuse avec des GPIO en fonction de l'identifiant reçu, puis on envoie une requête à un autre équipement, contenant de l'ASCII. La requête doit être reçue sur le port 15555 et la requête sortante sur le port 5045

Voici mon code :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# coding: utf-8
 
import socket
import RPi.GPIO as GPIO
import time
 
gache = [17,27,22,0,0,0,0,0,0,0,22]
 
def ouvrirGache(numGache):
    if (numGache > 0): ouvrirGache(0)
    GPIO.output(gache[numGache],True)
    time.sleep(2)
    GPIO.output(gache[numGache],False)
 
rx = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
rx.bind(('', 15555))
 
tx = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
GPIO.setmode(GPIO.BCM)
 
for i in range(0,11):
    GPIO.setup(gache[i],GPIO.OUT)
 
while True:
        rx.listen(5)
        client, address = rx.accept()
        reponse = client.recv(255)
        ouvrirGache( int(reponse) )
        tx.connect(('172.17.4.83', 5045))
        tx.send('TEST.')
        tx.close()
 
print "Close"
client.close()
rx.close()
GPIO.cleanup()
Cependant, j'obtiens les erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Traceback (most recent call last):
  File "Desktop/TCPsockets.py", line 30, in <module>
    tx.connect(('172.17.4.83', 5045))
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
  File "/usr/lib/python2.7/socket.py", line 174, in _dummy
    raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
Une idée ?
Merci et bonne journée à tous,

Cordialement,
Waryard