Mon code est le suivant:
while 1:
# Determine whether the server is up or down
try:
s.connect((mcip, port))
s.send(magic)
data = s.recv(1024)
s.close()
print data
except Exception, e:
print e
sleep(60)
Cela fonctionne très bien lors de la première manche, mais me donne Errno 9 à chaque fois par la suite. Qu'est-ce que je fais mal?
BTW,
mcip = "mau5ville.com"
port = 25565
magic = "\xFE"
Vous appelez connect
sur le même socket que vous avez fermé. Tu ne peux pas faire ça.
Quant à les docs pour close
dites:
Toutes les opérations futures sur l'objet socket échoueront.
Déplacez simplement la s = socket.socket()
(ou tout ce que vous avez) dans la boucle. (Ou, si vous préférez, utilisez create_connection
au lieu de le faire en deux étapes, ce qui rend plus difficile de se tromper, ce qui signifie que vous n'avez pas à deviner IPv4 vs IPv6, etc.)
j'ai résolu ce problème par le passé,
vous devez le faire avant de vous reconnecter:
s = socket(AF_INET, SOCK_STREAM)
que de continuer avec:
s.connect((mcip, port))
s.send(magic)
data = s.recv(1024)
s.close()
print dat