4

我会简单地说:我有一个 u-blox M8 GNSS 评估套件,我正试图从中提取位置数据作为更大程序中的子例程。但我一开始就被难住了。我的程序在尝试建立初始连接时终止,并出现以下错误:

ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

我想也许另一个进程正在侦听 gpsd (2947) 的默认端口,但是在调用“netstat -a -n”(在 Windows 命令提示符中)之后,我能够确认没有其他进程阻塞该端口。我不知道如何进一步追查原因可能是什么,并且渴望更多有经验的用户可能提出的任何建议。

编辑为惰性添加更多上下文 程序在连接调用期间中断(字面上是我自己程序的第一行),您可以在下面看到上下文:

def connect(host="127.0.0.1", port=2947):
""" Connect to a GPSD instance
:param host: hostname for the GPSD server
:param port: port for the GPSD server
"""
global gpsd_socket, gpsd_stream, verbose_output, state
logger.debug("Connecting to gpsd socket at {}:{}".format(host, port))
gpsd_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
gpsd_socket.connect((host, port))
gpsd_stream = gpsd_socket.makefile(mode="rw")
logger.debug("Waiting for welcome message")
welcome_raw = gpsd_stream.readline()
welcome = json.loads(welcome_raw)
if welcome['class'] != "VERSION":
    raise Exception(
        "Unexpected data received as welcome. Is the server a gpsd 3 server?")
logger.debug("Enabling gps")
gpsd_stream.write('?WATCH={"enable":true}\n')
gpsd_stream.flush()

for i in range(0, 2):
    raw = gpsd_stream.readline()
    parsed = json.loads(raw)
    _parse_state_packet(parsed)
4

0 回答 0