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

为何调用SSLContext.wrap_socket()传sock仍报参数缺失错误?

报错原因与解决办法

错误原因

ssl.SSLContext.wrap_socket是实例方法,并非类方法。你直接通过SSLContext类调用该方法时,Python会把你传入的sock参数当成方法要求的self(即SSLContext实例本身),导致真正需要的sock参数缺失,从而触发这个TypeError。

解决办法

有两种可行的修复方式:

方式一:创建SSLContext实例后调用方法(推荐,更灵活)

先初始化一个SSLContext实例,再调用实例的wrap_socket方法传递sock参数:

import ssl 
import socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 创建SSLContext实例,可指定协议版本,比如PROTOCOL_TLS_CLIENT(适配多数场景)
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ssl_sock = context.wrap_socket(sock)

方式二:使用ssl模块顶层的wrap_socket函数

如果不需要自定义SSL配置,也可以直接用模块提供的顶层函数,它内部会帮你处理上下文实例:

import ssl 
import socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
ssl_sock = ssl.wrap_socket(sock)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:24:53