【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

当我们运行client程序时会报错
网上大致提供了两种解决思路, 一是防火墙,二是进入局域网配置中打开自动检测 ,但是我试了之后都没有什么用
【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。_第1张图片

Traceback (most recent call last):
  File "D:/pythonProject/learn168/网络编程/client.py", line 24, in <module>
    main()
  File "D:/pythonProject/learn168/网络编程/client.py", line 15, in main
    s.connect((host,port)) # 连接服务器
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

问题解决:

可以看到我们设置的host地址确实是 172.29.247.145 但仔细看这个地址是无线网的地址 ,也就是你目前连接的网关给你分配的一个地址。

我们用python代码测试一下

1.先获取主机名

host = socket.gethostname() 
print(host)

上述代码会返回主机名
【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。_第2张图片

我的主机名是 : LAPTOP-KOAF2Q0J

2.再用这个主机名查看主机ip

host = socket.gethostbyname("LAPTOP-KOAF2Q0J") # 获取自己的主机ip
print(host)

【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。_第3张图片
可以看到这里的ip与我们设想的并不一样,这个地址是我之前给电脑配的新的网络适配器(其实我也不知道用来做什么),所以在client文件中我们设置的host地址应该为169.254.128.32

修改完后可以正常运行
【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。_第4张图片

总结:

其实我这个错误不是电脑,防火墙等客观原因导致的,而是自己误认为无线局域网适配器上的ip是主机地址

你可能感兴趣的:(python,python,socket)