【问题标题】:Python socket listening failed with error target machine actively refused itPython 套接字侦听失败,错误目标机器主动拒绝它
【发布时间】:2021-05-27 11:02:06
【问题描述】:

我已经通过

运行了这个python脚本
python myproxy.py

我收到以下错误:

Traceback (most recent call last):
  File "proxy.py", line 4, in <module>
    client_socket.connect(('localhost', 5000))
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

脚本:

import socket, time

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 5000))
serversocket.listen(20) # become a server socket, maximum 20 connections

while True:
    connection, address = serversocket.accept()
    data = client_socket.recv(512)
    print("RECEIVED: %s" % data)
    client_socket.send(data)

有很多关于这是防火墙问题的 stackoverflow 答案。我创建了一个传入和传出防火墙规则以允许端口 5000 并且没有工作。请不要链接这些问题,与以前的问题不同,让我们避免让彼此失望。

我不是 telnet 专家,但我尝试过:

远程登录

Welcome to Microsoft Telnet Client

Escape Character is ']'

Microsoft Telnet> open localhost 5000
Connecting To localhost...Could not open connection to the host, on port 5000: Connect failed
Microsoft Telnet> open 127.0.0.1 5000
Connecting To 127.0.0.1...Could not open connection to the host, on port 5000: Connect failed
Microsoft Telnet>

我也在使用代理。我关闭了没有解决这个问题的代理。一般来说,我更喜欢在使用代理的同时使用这个脚本,但是如果没有其他选项,关闭代理也可以。

我应该如何解决这个问题?

更新:

使用

client_socket.connect((socket.gethostbyname(socket.gethostname()), 5000))

没有太大帮助:

    client_socket.connect((socket.gethostbyname(socket.gethostname()), 5000))
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

【问题讨论】:

标签: python python-3.x windows sockets


【解决方案1】:

尝试用 socket.gethostbyname(socket.gethostname()) 替换“localhost”
您还需要 serversocket 在服务器脚本中。

【讨论】:

  • 谢谢,它没有帮助。我更新了问题并将错误放在那里。
  • 我注意到的另一个问题是我们希望连接是服务器。我不知道为什么我复制代码的地方将其标记为客户端而不是服务器。
  • 试着让它只与接受客户一起工作,然后向他们发送数据,然后你可以继续你正在做的事情。 #如果你想看我的代码,请随时问我
【解决方案2】:

您可以尝试使用客户端中的 IP 地址更改“localhost”。

在我用我的 ip 地址替换客户端(在我的情况下为 WinSCP)中的主机名 (localhost) 之前,我遇到了几乎相同的问题。

尤其是本地循环(127.0.0.1 或 localhost)不能与机器的显式 IP 地址互换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2013-10-21
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多