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

Python Socket客户端与服务器无法建立连接问题求助

Python Socket 连接超时问题排查与解决

问题场景

开发基于Python Socket的简单数据传输程序时,服务器与客户端无法建立连接,客户端抛出超时错误。

服务器代码

import socket

addr = ('0.0.0.0', 8080)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
    server_socket.bind(addr)
    server_socket.listen()
    print("Server is listening on port", addr[1])
    client_socket, client_address = server_socket.accept()
    print("Connected to", client_address)
    data = client_socket.recv(1024)
    print("Received:", data.decode('utf-8'))
    client_socket.close()

客户端代码

import socket

addr = ('my_ip', 8080)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
    client_socket.connect(addr)
    message = "Hello, server!"
    client_socket.sendall(message.encode('utf-8'))
    print("Data sent to the server")

报错信息

TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

排查与解决步骤

  • 修正客户端目标地址
    • 同机测试:将my_ip替换为127.0.0.1或localhost;
    • 局域网测试:替换为服务器的局域网IP(如192.168.1.100);
    • 公网测试:替换为服务器公网IP,同时确保服务器8080端口已在防火墙/安全组开放。
  • 确保启动顺序正确
    先运行服务器脚本,待控制台输出"Server is listening on port 8080"后,再启动客户端。
  • 检查防火墙拦截
    • 本地:临时关闭Windows防火墙或第三方安全软件测试,或添加允许Python程序访问网络的规则;
    • 云服务器:在安全组中添加入站规则,开放TCP协议的8080端口。
  • 验证端口占用情况
    • Windows执行命令:netstat -ano | findstr :8080,查看是否有其他进程占用8080端口;
    • Linux/macOS执行命令:lsof -i :8080,若端口被占用则更换为未被使用的端口(如8081)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:43:34