【解决socket中无法连接问题】ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
当我们运行client程序时会报错
网上大致提供了两种解决思路, 一是防火墙,二是进入局域网配置中打开自动检测 ,但是我试了之后都没有什么用
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)
上述代码会返回主机名
我的主机名是 : LAPTOP-KOAF2Q0J
2.再用这个主机名查看主机ip
host = socket.gethostbyname("LAPTOP-KOAF2Q0J") # 获取自己的主机ip
print(host)
可以看到这里的ip与我们设想的并不一样,这个地址是我之前给电脑配的新的网络适配器(其实我也不知道用来做什么),所以在client文件中我们设置的host地址应该为169.254.128.32
修改完后可以正常运行
总结:
其实我这个错误不是电脑,防火墙等客观原因导致的,而是自己误认为无线局域网适配器上的ip是主机地址