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

Python socket.connect是否有更新形式?TCP客户端连接报错求助

问题解决:socket.connect连接失败及错误修正

错误原因

你遇到的socket.gaierror: [Errno -2] Name or service not known是域名解析失败导致的,核心问题有两个:

  • target_host变量里包含了http://前缀,socket进行域名解析时不需要协议头,只需要纯域名或IP地址
  • HTTP请求头里的Host字段错误带上了http://,不符合HTTP协议规范

修正后的代码

import socket
target_host = "www.google.com"  # 移除http://前缀
target_port = 80

# 创建socket对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client.connect((target_host, target_port))
# 发送符合规范的HTTP请求
client.send(b"GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n")
# 接收响应数据
response = client.recv(4096)
print(response.decode())
client.close()

额外说明

  • Python 3.10.5的socket.connect()用法没有更新,你使用的双括号元组格式是完全正确的,问题出在域名和请求头的格式错误
  • 如果后续连接自己搭建的TCP服务器,需确保:
    • target_host是服务器的IP或可正常解析的域名(不要加协议前缀)
    • 服务器端口处于监听状态,且防火墙允许该端口的TCP连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:25:22