2013-04-11 24 views
16

Mã của tôi là thế này:Bắt Errno 9: mô tả tập tin xấu trong ổ cắm python

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) 

Nó hoạt động tốt trên đường chạy trốn đầu tiên, nhưng mang lại cho tôi Errno 9 mỗi lần sau. Tôi đang làm gì sai?

BTW,

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

Làm gì ma thuật, mcip và port nghĩa là gì? Vui lòng đăng toàn bộ mã trên www.pastebin.com – xxmbabanexx

+0

Đã thêm chúng cho bạn –

Trả lời

31

Bạn đang gọi điện thoại connect trên cùng một ổ cắm bạn đã đóng. Bạn không thể làm điều đó.

Đối với the docs cho close nói:

Tất cả các hoạt động trong tương lai trên đối tượng ổ cắm sẽ thất bại.

Chỉ cần di chuyển s = socket.socket() (hoặc bất kỳ thứ gì bạn có) vào vòng lặp. (Hoặc, nếu bạn thích, hãy sử dụng create_connection thay vì thực hiện theo hai bước, điều này làm cho việc này khó hơn, cũng như có nghĩa là bạn không phải đoán tại IPv4 so với IPv6, v.v.)

+0

Awesomeee. Cảm ơn! –

Các vấn đề liên quan