我的代码是这样的:
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)
Run Code Online (Sandbox Code Playgroud)
它在第一次运行时工作正常,但每次都给我Errno 9.我究竟做错了什么?
顺便说一句,
mcip = "mau5ville.com"
port = 25565
magic = "\xFE"
Run Code Online (Sandbox Code Playgroud)
aba*_*ert 51
你正在呼叫connect关闭的同一个套接字.你不能这样做.
至于该文档的close说:
将来对套接字对象的所有操作都将失败.
只需将s = socket.socket()(或任何你拥有的)移动到循环中.(或者,如果您愿意,请使用create_connection而不是分两步执行,这使得更难以出错,并且意味着您不必猜测IPv4与IPv6等)
小智 5
我过去解决过这个问题,
您必须先创建套接字connect():
s = socket(AF_INET, SOCK_STREAM)
Run Code Online (Sandbox Code Playgroud)
然后继续:
s.connect((mcip, port))
s.send(magic)
data = s.recv(1024)
s.close()
print dat
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66267 次 |
| 最近记录: |