복붙노트

[PYTHON] Errno 9 얻기 : 파이썬 소켓에 잘못된 파일 기술자

PYTHON

Errno 9 얻기 : 파이썬 소켓에 잘못된 파일 기술자

내 코드는 다음과 같습니다.

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 이후마다 제공합니다. 내가 뭘 잘못하고 있죠?

BTW,

mcip = "mau5ville.com"
port = 25565
magic = "\xFE"

해결법

  1. ==============================

    1.닫은 것과 같은 소켓에서 connect를 호출하고 있습니다. 너는 그렇게 할 수 없다.

    닫은 것과 같은 소켓에서 connect를 호출하고 있습니다. 너는 그렇게 할 수 없다.

    가까운 문서는 다음과 같습니다.

    그냥 s = socket.socket () (또는 무엇이든) 루프로 이동하십시오. (또는 원하는 경우 create_connection을 두 단계로 사용하는 대신 create_connection을 사용하면 잘못 입력하는 것을 어렵게 만들뿐만 아니라 IPv4 대 IPv6을 추측 할 필요가 없습니다.)

  2. ==============================

    2.나는이 문제를 과거에 해결했다.

    나는이 문제를 과거에 해결했다.

    다시 연결하기 전에 이렇게해야합니다.

        s = socket(AF_INET, SOCK_STREAM)
    

    계속하는 것보다 :

        s.connect((mcip, port))
        s.send(magic)
        data = s.recv(1024)
        s.close()
        print dat
    
  3. from https://stackoverflow.com/questions/15958026/getting-errno-9-bad-file-descriptor-in-python-socket by cc-by-sa and MIT license