Python Socket编程出现errno 111连接拒绝错误,求问题排查
排查Python Socket连接拒绝(errno 111)问题
嘿,这个问题其实一眼就能揪出根源——端口不匹配!咱们来一步步拆解:
核心错误点
先看你的两段代码:
服务端绑定的是8088端口:
# 服务端代码片段 s.bind(('', 8088)) # 服务端监听8088端口
但客户端却试图连接8080端口:
# 客户端代码片段 s.connect(('127.0.0.1', 8080)) # 客户端连接的是8080端口
两边端口完全不一致,客户端找不到对应的服务端监听,自然就会抛出errno 111: Connection refused错误。
快速修正方案
只需要把两端的端口改成统一值就行,比如把客户端的连接端口改成和服务端一致的8088:
# 修正后的客户端代码 import socket s = socket.socket() s.connect(('127.0.0.1', 8088)) # 端口改为8088,和服务端保持一致 while 1: print(s.recv(2048))
当然反过来把服务端的绑定端口改成8080也可以,只要两边统一就好。
额外排查小贴士(避免以后踩坑)
- 一定要先启动服务端,再运行客户端,不然客户端连的时候服务端还没开始监听
- 可以用命令验证端口是否被正确监听:Linux/macOS用
netstat -an | grep 8088,Windows用netstat -ano | findstr 8088 - 如果是跨机器连接,还要确认防火墙有没有放行目标端口,以及服务端绑定的地址是否允许外部访问(你现在用的
''是绑定所有地址,本地连接没问题)
内容的提问来源于stack exchange,提问作者Elliot White
相关产品推荐
相关产品推荐

