programme simple de socket:
Salut..
je dois utiliser un un programme server qui me permettra de recevoir des données de mon robot...
quand j'éxecuete pour la 1 ere fois il marche...mais aprés il me donne cet erreur :
<class 'socket.error'>
(98, 'Address already in use')
j'ai utilisé socket.SO_REUSEADDR mais cela n'a rien changé..
je ne veux pas changer le numéro de port après chaque exécution car le robot doit interagir avec son environnement suivant une boucle motrice-sensorielle....bref je ne peux pas changé le numéro de port à chaque fois...
est ce que vous avez une idée??..merci d'avance..
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| def __init__(self):
GeneratedClass.__init__(self)
self.netProxy = ALProxy("ALNetwork")
self.q= self.netProxy.findFreePort ("10.3.1.253")
self.r= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.r.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.r.bind(('10.3.1.253', 54043))
self.r.listen(1)
def onInput_onStart(self):
#self.onStopped() # activate output of the box
(self.conn, self.addr) = self.r.accept()
while 1:
data = self.conn.recv(1)
self.onStopped()
self.conn.close() |