Each Answer to this Q is separated by one/two green lines.
My code is this:
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)
It works fine on the first run, but gives me Errno 9 every time after. What am I doing wrong?
mcip = "mau5ville.com" port = 25565 magic = "\xFE"
connect on the same socket you closed. You can’t do that.
As for the docs for
All future operations on the socket object will fail.
Just move the
s = socket.socket() (or whatever you have) into the loop. (Or, if you prefer, use
create_connection instead of doing it in two steps, which makes this harder to get wrong, as well as meaning you don’t have to guess at IPv4 vs. IPv6, etc.)
I resolved this problem in the past,
you have to create the socket before
s = socket(AF_INET, SOCK_STREAM)
then continue with:
s.connect((mcip, port)) s.send(magic) data = s.recv(1024) s.close() print dat