1. ホーム
  2. python

[解決済み] Errno 9: Pythonソケットのファイルディスクリプタが不正です。

2022-02-19 15:22:04

質問

私のコードはこうです。

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 これは、IPv4とIPv6の違いなどを推測する必要がないのと同様に、間違えにくくなります)。