Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误:';插座';对象没有属性';创建#u连接';_Python_Sockets - Fatal编程技术网

Python 错误:';插座';对象没有属性';创建#u连接';

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)

我一直在尝试使用python套接字连接到远程服务器,因为我正在使用create_connection,但当我的客户端尝试连接到该服务器时,它显示了此错误

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))