You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL中C++ TCP客户端连接Python TCP服务器被拒求助

WSL下C++ TCP客户端连接Windows Python服务器报Connection refused的解决办法

问题概述

Windows主机运行的Python TCP服务器绑定127.0.0.1:9999,Windows本地Python客户端可正常连接,但WSL环境中编译运行的C++客户端始终返回Connection refused错误。

核心原因

WSL与Windows主机属于独立的网络命名空间,两者的127.0.0.1是各自的本地回环地址,互不互通。Python服务器绑定127.0.0.1仅监听Windows主机的回环接口,WSL客户端访问127.0.0.1只会尝试连接WSL自身的回环,无法触及Windows上的服务器。

解决方案

方案1:修改Python服务器监听所有接口

将服务器代码中的HOST从127.0.0.1改为0.0.0.0,让服务器监听主机所有可用网络接口,包括WSL可访问的接口:

import socket

HOST = "0.0.0.0"  # 监听所有网络接口
PORT = 9999
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
print("Listening...")
s.listen(1)
conn, addr = s.accept()
print("Accepted connection!")

方案2:C++客户端连接Windows主机的局域网IP

若不想修改服务器配置,可让C++客户端直接连接Windows主机的局域网IP:

  1. 在Windows主机执行ipconfig,找到当前网络适配器的IPv4地址(通常为192.168.x.x格式)。
  2. 修改C++客户端中的目标地址:
std::string address = "192.168.x.x";  // 替换为Windows主机的实际局域网IP

额外验证项

  • 检查Windows防火墙是否阻止了9999端口的入站连接,必要时添加允许Python程序通过防火墙的规则。
  • 确认C++客户端实例化时传入的port_number确实为9999,避免端口不匹配。

内容的提问来源于stack exchange,提问作者irish Senthil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:20:30