私のコードはこれです:
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)
最初の実行では正常に動作しますが、その後は毎回Errno 9が表示されます。私は何を間違えていますか?
ところで、
mcip = "mau5ville.com"
port = 25565
magic = "\xFE"
閉じたのと同じソケットでconnect
を呼び出しています。それはできません。
ドキュメントclose
の場合:
ソケットオブジェクトに対する今後の操作はすべて失敗します。
s = socket.socket()
(またはあなたが持っているもの)をループに移動するだけです。 (または、必要に応じて、 create_connection
2段階で行うのではなく、これにより間違えにくくなり、IPv4とIPv6などを推測する必要がなくなります。
私は過去にこの問題を解決しました、
再度接続する前にこれを作成する必要があります。
s = socket(AF_INET, SOCK_STREAM)
続行するよりも:
s.connect((mcip, port))
s.send(magic)
data = s.recv(1024)
s.close()
print dat