我的Python脚本无法正常工作。它表示端口kandicraft.finlaydag33k.nl上的25565已关闭,而它正在响应ping(我可以连接到游戏本身)

我知道这应该是代码中的某个错误,但是在半个小时前启动python时我找不到它。

我得到的输出是:24-02-2016 16:05:30] kandicraft.finlaydag33k.nl on port 25565 seems to be unreachable!
我已经对问题进行了编辑,因为使用google的80端口现在可以使用了,但是此脚本(ping Minecraft服务器)的主要目的以后就不起作用了。
我从异常中得到的错误是an integer is required(因此端口25565似乎不是整数???)

import os
import RPi.GPIO as gpio
import time
import socket

## set variables for the machine to ping and pin for the LED
hostname = ['kandicraft.finlaydag33k.nl:25565','google.com:80']
led_pin = 37

## prepare
led_status = gpio.LOW
gpio.setmode(gpio.BOARD)
gpio.setup(led_pin, gpio.OUT, gpio.PUD_OFF, led_status)

## PING FUNCTION GALORE!!
def check_ping(host,port):
    captive_dns_addr = ""
    host_addr = ""
    try:
        host_addr = socket.gethostbyname(host)

        if (captive_dns_addr == host_addr):
            return False

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)
        s.connect((host,port))
        s.close()
    except:
        return False

    return True



## Run the script itself infinitely
while True:
    host_up = ""
    for host in hostname:
        if ":" in host:
            temphost, tempport = host.split(":")
            pingstatus = check_ping(temphost, tempport)
            if pingstatus == False:
                print('[' + time.strftime("%d-%m-%Y %H:%M:%S") + '] ' + temphost + ' on port ' + tempport + ' seems to be unreachable!')
                host_up = "False"

    if host_up == "False":
        led_status = gpio.HIGH
    else:
        led_status = gpio.LOW
    gpio.output(led_pin,led_status)
    time.sleep(1)

最佳答案

我设法使用check_ping(temphost,int(tempport))解决了所有发现的问题
感谢所有帮助我解决问题的人!

关于python - 为什么我的脚本告诉我端口25565上的Minecraft服务器无法访问?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35607178/

10-12 19:53