def METHOD_NAME(self):
    timeout = None
    if "timeout" in self.extraArgsDict:
        timeout = self.extraArgsDict["timeout"]
    try:
        self.oSocket = socket.create_connection(self.stServerAddress, timeout)
    except OSError as e:
        if e.args[0] != 115:
            return S_ERROR(f"Can't connect: {str(e)}")
        # Connect in progress
        sel = selectors.DefaultSelector()
        sel.register(self.oSocket, selectors.EVENT_READ)
        if not sel.select(timeout=self.extraArgsDict["timeout"]):
            self.oSocket.close()
            return S_ERROR("Connection timeout")
        errno = self.oSocket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
        if errno != 0:
            return S_ERROR(f"Can't connect: {str((errno, os.strerror(errno)))}")
    self.remoteAddress = self.oSocket.getpeername()
    return S_OK(self.oSocket)