Python 错误:';插座';对象没有属性';创建#u连接';
我一直在尝试使用python套接字连接到远程服务器,因为我正在使用create_connection,但当我的客户端尝试连接到该服务器时,它显示了此错误Python 错误:';插座';对象没有属性';创建#u连接';,python,sockets,Python,Sockets,我一直在尝试使用python套接字连接到远程服务器,因为我正在使用create_connection,但当我的客户端尝试连接到该服务器时,它显示了此错误 AttributeError: 'socket' object has no attribute 'create_connection' 这是我的密码 def _connect(self): print("Connecting to ",self.hostname,self.port)
AttributeError: 'socket' object has no attribute 'create_connection'
这是我的密码
def _connect(self):
print("Connecting to ",self.hostname,self.port)
self.sock.create_connection((self.hostname, self.port))
print("Connection successfull")
主机名和端口在构造函数中初始化
def __init__(self, host, port, path, headers, method):
self.host = host.decode('utf-8')
self.hostname = socket.gethostbyname(self.host)
self.port = port
self.path = path.decode('utf-8')
self.header = headers
self.method = method.decode('utf-8')
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
主机和端口是从URLPRASE库解析的
def from_url(cls, url, header, method):
"""Construct a request for the specified URL."""
res = urlparse(url)
path = res.path
if res.query:
path += b'?' + res.query
return cls(res.hostname, res.port or 80, path, header, method)
create_connection
是socket
模块中的函数,而不是socket.socket
类的方法
此外,create\u connection
返回一个socket.socket
实例,因此,与其在\uuu init\uuuuu
中创建一个实例,不如将self.sock
设置为某个“未初始化”值(例如None
)在\uuuu init\uuuu
中,并在\u connect
中分配新的套接字.socket
实例:
替换
借
self.sock等于什么?@TomDanilov self.sock=socket.socket(socket.AF_INET,socket.sock_STREAM)
def __init__(self, …):
# …
self.sock = socket.socket(…)
def _connect(self):
# …
self.sock.create_connection((self.hostname, self.port))
def __init__(self, …):
# …
self.sock = None
def _connect(self):
# …
self.sock = socket.create_connection((self.hostname, self.port))